How does video streaming work? [part 3: HTTP-based Adaptive Streaming]

This blog is the 3rd part of “How does video streaming work?” blog and you could check the details of Progressive Download and Traditional Streaming in Part 1 and Part 2.

Figure 1: Http-based Adaptive Streaming

Video gets encoded into different formats and video qualities. Http-based Adaptive Streaming uses normal web server and transmit data via HTTP protocol. Video files are chunked into small video fragments in sequence, usually 2 seconds. Hence, for a 1Mbps video, the data chunk size is only 250 KB.

Why we call it “Adaptive” Streaming? It is because for instance your video is encoded into three different types of quality: 5mbps, 10mbps and 15mbps. Based on the network condition as well as the CPU capability, at 0 second, maybe server is feeding your desktop application at 5 mbps, and at 2 second, since it realized your network is very good, it could serve you 10 mbps. Therefore, user has lower chance of waiting for video to be loaded, because if your network condition is bad, you could simply load a low bit-rate video. In addition, Adaptive Streaming will serve the low bit-rate video first so user gets a very quick start up.

In Progressive Download and Traditional Streaming, once the client starts streaming a video, the bit-rates of that video clip will stay unchanged. Even if later on, client has very bad network condition, it still needs to load video with high bit-rates. However, in Http-Based Adaptive Streaming, client could enjoy very smooth viewing experience because of video bit-rates get switched seamlessly according to client’s network and CPU condition.

In addition, Http-based Adaptive Streaming utilized HTTP protocol which leveraged on the scalability of the whole Internet. Basically, there are a lot of intermediaries between client and the server, and they are proxies or gateways. Video files get chunked into small file size, so it’s easier to cache in all these intermediaries. Therefore, Http-based Adaptive Streaming works well with CDNs so media content provider could scale in a very cost-effective manner.

Here are some implementations in the industry:

• Microsoft Smooth Streaming: http://www.iis.net/download/SmoothStreaming
• Adobe Dynamic Streaming for Flash
• Apple HTTP Adaptive Streaming

5 Responses to How does video streaming work? [part 3: HTTP-based Adaptive Streaming]
  1. [...] does video streaming work? [part 3: HTTP-based Adaptive Streaming] If you have any questions, feel fre... mingfeiy.com/session-information-for-build-2012
  2. Robertico Gonzalez Reply

    Great Job on this blog.  You may want to include the concept of transcoding.

  3. Kostas Ntougias Reply

    Excellent series of blog posts on video streaming! Just one note of minor importance: in Part I, when you talk for the original version of progressive downloading, actually this technique is not progressive downloading, it is called direct downloading, for obvious reasons which you describe in the post. Besides that, perfect explanation of all the concepts!

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.