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 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...
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.
changes the format of the video and audio format. for example from MPEG-2/AAC to H.264/AAC
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:
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.