Adaptive Streaming Tech Talk

Adaptive Streaming allows programmers to offer a higher quality viewing experience to a broader audience. Being able to offer HD streams all the way down to low bandwidth streams, without pauses or interruptions of the video, makes for a significantly improved consumer experience.   
 
Implementing Live Adaptive Streaming requires 3 elements:
  1. Video encoders that can output multiple streams simultaneously, and that are in synchronization down to the frame level, whether or not those streams are coming from one encoder or across multiple encoders.  
  2. Media Servers that can accept those streams from the encoder, and publish to and negotiate with clients to determine the optimum stream for each client. Examples include Microsoft IIS 7.0 and Adobe Flash Media Server 3.5.  
  3. Players running on consumer devices that are aware of the multiple bitrates available and how to transition between them.
 
Click on the picture to view a larger version of this image.
 
For example, imagine a user on a 2.5Mbps broadband connection starting to view a live stream. Without Adaptive Streaming, he would have to choose between a low bitrate and high bitrate stream. He chooses the high bitrate stream at 2Mbps.   At one point, his broadband speed drops to 1.5Mbps. When that happens, the high quality video starts pausing until the bandwidth returns above 2Mbps.   With Adaptive Streaming, this same user does not have to choose a stream.  He just connects to the live event. Because this event uses Adaptive Streaming, the programmer has provided six available bitrates: 500k, 1.0Mbps, 1.4Mbps, 1.8Mbps, 2.4Mbps and 3Mbps. He starts with a connection at 2.4Mbps. When his bandwidth drops to 1.5Mbps, instead of pausing, his stream is seamlessly transitioned to the 1.4Mbps stream. When the bandwidth recovers, he will again be seamlessly transitioned back to the 2.4Mbps stream. No decision needs to be made by the user. He is able to watch the live event, in the best quality possible, without pauses or interruptions in the video stream.