Part1 - Live Streaming Introduction

Recently I was assigned with a live streaming task and I really enjoyed what I've learned so far.  I used open source softwares for live streaming and didn't spend a dime! Isn't it great :)

In streaming we need a source camera, encoder hardware or software and a stream server. Below you can see the live stream process and its components. Encoder captures the raw camera feed and creates a stream-able data and sends it to streaming server with the settings you configured on the encoder. The streaming server picks it up from there to send down to the viewer

RTMP/HDS for Flash (flv)

MSS for Silverlight (mp4)

RTSP/RTP for quicktime or blackberry (mov)

HLS for Apple IOS or quicktime (Although HLS is natively supported on by Apple , I found out that most people use HLS. By using a HTML5 video player with flash fallback feature on our website, we can display our stream  almost on any device on any browsers)

 

 

 

 

H.264:

H.264 is the standard for streaming internet sources and also the recommended video compression format for HD in relatively low bitrates. Because it offers HD video quality in half the size of the formats such as MPEG2, MPEG-4, DivX, XviD, etc... 

 

AAC:

Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates.

 

Transcoding:

changes the format of the video and audio format. for example from MPEG-2/AAC to H.264/AAC

 

Transrating:

is publishing one stream to multiple resolutions

 

 

 

 

RTSP (Real Time Streaming Protocol):

RTSP is the control protocol for the delivery of multimedia content across IP networks. IP cameras use this protocol to send the video feed.

It uses port number 554. RTSP url may differ depending on your camera model.

Example RTSP URL:

rtsp://user:This email address is being protected from spambots. You need JavaScript enabled to view it./media/video1

 

Bit Rate:

Typical bandwidth of a standard IP camera is 1Mbps but in order to stream HD quality 2-4Mbps is needed. The best compression method we can select is H.264 because the bandwith it needs is a lot lower than the others.

 

Here you can see the recommended bitrates, resolutions and codecs by UStream

 

 

 

Now we have some ground info about streaming

Lets setup our encoder server.