In this column, I'm changing gears from talking about verification to reflecting on something that now touches our lives on a daily basis: streaming content from the web. I recently happened to complain out loud about the buffering phenomenon to a colleague working on streaming technology. She took it upon herself to provide me with a data dump of what is involved, so here it goes.
My friend started by saying that we share the Internet medium, and that the number of people using it at any particular time is dynamic. This means that the streaming experience can vary considerably throughout a day, during a month, or across a year. This led to my next questions: How does this affect things like Internet protocol television and connected TVs? What kind of a user experience can they guarantee? And does all this require a different Internet infrastructure?
Apparently, traditional techniques like download-and-play and progressive download are congestion ignorant. By comparison, newer techniques can sense congestion on the network, and they are adaptive with respect to available bandwidth.
HTTP adaptive streaming is one emerging solution. The beauty of it is that it is based on the HTTP infrastructure. So what exactly does this technique optimize? The intent is to reduce the user's waiting time and jitter by delivering the stream at an appropriate resolution using the available bandwidth. The system creates multiple files of different resolutions from the original content. Each file is targeted for different devices and connection speeds. The overall viewing experience is enriched by picking the stream that is best for playback at a given bandwidth. All this works on top of the HTTP infrastructure; the downside is that you sacrifice resolution.
The adaptive streaming concept is based on providing chunks of video 2-10 seconds long called segments. These segments are available up front from the server in different resolutions. All segments are captured with their HTTP URL in a manifest file and presented in advance to the player. Looking at the network load, the player picks the correct stream/segment with the appropriate resolution and downloads it for playback. This means that, at any point in time, the device has 2-10 seconds of content. If you are playing video on a smartphone, for example, and you move out of range from your WiFi hotspot, you will switch to a cellular data connection. At this point, adaptive streaming will step in and start downloading a lower-resolution version of the content.
Major players have their own versions of adaptive streaming, such as Apple's HTTP Live Streaming (HLS), Microsoft's Smooth Streaming, and Adobe's HTTP Dynamic Streaming. These are all based on the same fundamental principle of real-time adaptation of appropriate streams in unstable network conditions, but they differ in things like file formats. The Motion Picture Expert Group (MPEG) is trying to standardize the best-practices of these three streaming technologies under the MPEG-DASH (dynamic adaptive streaming over HTTP) brand. A unified standard requiring only one set of files capable of playing on all compatible devices would be a boon to all content publishers.
MPEG-DASH development has begun. At last September's International Broadcaster Conference, the sound system company DTS showcased streaming on an Android tablet using MPEG-DASH content. During that conference, Fraunhofer presented multi-screen, dynamic ad insertion and encryption technologies using the protocol. And RGB Networks announced a partnership with Conax to integrate RGB's TransAct Packager with Conax's conditional access systems and digital rights management. Furthermore, HLS has been deployed on Apple devices like the iPad and iPhone, and it is starting to see deployment on non-Apple platforms.
With handheld devices projected to be the largest consumer of streaming content, HTTP-based streaming will be the backbone of any strategy. With the addition of secure components like DRM, adaptive streaming technologies are expected to offer consumers a secure and buffering-free experience. It is comforting to know there will be fewer complaints about streaming at some stage in the future. For the moment, however, we need to wait to see which way the content providers swing. Will everyone adopt MPEG-DASH, or are we destined to have a multitude of protocols?