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