Today let’s discuss another powerful and most used technology Adaptive streaming. Most of them very familiar about streaming a video. Isn’t? Most of you are very used with some of the popular streaming sites like YouTube, Netflix, Amazon, HBO etc.
Do you know how these sites streaming their videos continuously without any interruption? What will happen when your internet speed is very low? Have you think about it? If not, it is ok. I am going to explain all these queries with the help of adaptive streaming technology.
Progressive Download vs RTMP/RTSP streaming
The simple download was server based delivery over HTTP where, as the video file is sufficiently downloaded or buffered on client machine, it can be played back. This process is called Progressive Download. Download of a video content happens sequentially and hence skipping ahead is not allowed. Progressive download was a significant improvement from earlier simple download where users could not play until entire file was not downloaded. Progressive download gave more smoothness by reducing waiting time for playback.
RTMP (Real Time Messaging Protocol) or RTSP (Real time streaming protocol) offers content security by transferring chunks of media which get used by the media player without any local caching. It enables fast forward and rewind of video and saves bandwidth by downloading content just in time. This technology takes advantage of delivery over UDP protocol and can achieve much faster transfer rates.
What is Adaptive streaming?
Progressive download and RTMP/RTSP streaming were the two powerful streaming technology used in earlier time. Now the invention of the technology is getting increased day by day. Now today most of the streaming companies or sites using another streaming technology called Adaptive streaming.
What is adaptive streaming? Have you experienced your video quality is changing when your internet speed is very low? Adaptive streaming is the most popular form of video streaming technology with benefits of quality switching and ease of delivery over HTTP.
This technology aggregates segments of multi-bit encoded videos (typically 5 -10 sec each) which are indexed and referenced by the client using a manifest file. This manifest file contains index of chunks and their location. Client will download the manifest file and periodically requests for highest quality of video.
The flexibility to switch video segments based on Adaptive algorithm (The algorithm based on CPU availability, network conditions etc.) ensures un-interrupted playback.
There are three adaptive streaming technologies available today, these are Adobe’s HDS (HTTP Dynamic Streaming), Apple’s HLS (HTTP Live Streaming) and Microsoft’s Smooth Streaming (MSS) and an emerging MPEG DASH.
Why adaptive streaming?
In normal streaming we have one video with one resolution that is progressively downloaded to your cache and then played in the video player. Isn’t? So if you have a good quality video but a slow internet connection with low bandwidth. What will happen now? The video will stop and buffer the whole time because your connection can’t handle the download in real time.
That’s the reason they developed adaptive streaming. There you have a video in multiple resolutions that is segmented in short chunks. The player then gets a file where all the resolutions, chunk lengths, media codecs etc. are defined. So when you play the video the player measures your internet connection’s bandwidth and picks the best available resolution for you to play.
How Adaptive streaming works?
The following are the some of the key benefits of Adaptive streaming
- Video Content is encoded for multiple bit rates, an index file called manifest created with chunk naming and location details.
- Client can switch low or high bit-rate stream based on client and network environment
- A slow connection will force users to watch low quality content only
- Client periodically checks the capability and requests best suited chunk from available list.
- Depending on network bandwidth and CPU conditions, client can request/receive a higher or lower quality stream
Following are the basic architecture of adaptive streaming
It contains an Encoder, streamer and a web server. Encoder will encode the audio/video source by multiple level encoding. Now the streamer has a manifest file contain different chunks of files which are in different format (for example HLS, MPEG DASH formats). In client side, it has an Adaptive streaming video player. It request the low or high bit-rate stream based on client and network environment.
In coming adaptive streaming series post, I will explain different adaptive streaming technology in detail. If you have any queries or suggestions, don’t hesitate to post your comments below this post.
Leave a Reply