Earlier this year I wrote a blog about video format conversion that touched on the positioning of various adaptive bit rate video formats, including MPEG DASH (Dynamic Adaptive Streaming over HTTP), an industry attempt to make video delivery to the increasingly diverse numbers and types of devices less complex. Recent developments in the video industry warrant a follow on discussion on MPEG DASH, its history, benefits, and market traction.
Let’s start with some history and background on adaptive bit rate streaming, which has become the common way to deliver video content online to a diverse population of devices. The reason we refer to this as adaptive streaming is because software in the video origin servers and in the viewing device detect the bandwidth capacity of the network connection to the end user device, and automatically adjusts the quality of the video stream between multiple bitrates and resolutions. A benefit of this approach over delivery of a fixed bitrate video file is that the adaptive stream can be switched midstream to match the end user’s available network bandwidth at a point in time. Fixed bitrate delivery would have to buffer or interrupt playback if the end user’s bandwidth could not support the quality of video being delivered. Another benefit is the main protocols for adaptive streaming run over the standard HTTP port, so can get through firewalls.
The three established adaptive bitrate protocols are:
- HTTP Live Streaming (HLS) - Apple’s proprietary streaming format based on MPEG2-TS. It is currently the most popular mobile format also supported by all Android devices as well.
- HTTP Dynamic Streaming (HDS) - Adobe’s format to deliver fragmented mp4 files (fMP4). HDS allows for adaptive streaming over HTTP to any device that’s compatible with Adobe Flash or Air. Because of the high market penetration that Flash Player has, HDS is a great choice for streaming to desktop computers. However, the Flash Player is not supported by Android and iOS which makes HDS unsuitable for broadcasting to mobile devices.
- Microsoft Smooth Streaming (MSS) - supported by Silverlight, Xbox, Windows Phone, Windows 8, and some TV set-top boxes.
Each of these protocols have substantial similarities, in fact, it is said that they are 80% the same but 100% incompatible. The obvious complication this situation brings to video content delivery is the need to support all formats for viewing on any device. A standard protocol would enable content publishers to product one set of files that play on any device supporting the standard. To this end, MPEG issued a call for proposal for an HTTP streaming standard back in 2009. A specification was developed with participation by industry experts, more than 50 companies – including Microsoft, Adobe, and Netflix, and coordinated with other industry organizations.
In addition to those mentioned previously, there are several other key benefits in the adoption of this new standard. Because several major media companies took part in the development of the specification, technical issues in delivery and compression will be eliminated. Essentially, technologies and standards from the existing protocols are combined into one, making streaming support seamless on all devices. Transcoding complexity and costs will be reduced. Content publishers need only generate a single set of files for encoding and streaming that will be compatible with as many devices as possible, from mobile to OTT. Consumers will not have to worry about whether their devices will be able to play content they want to watch.
Finally, market traction for MPEG DASH is accelerating. Major supporters of the standard include Adobe, Samsung, Microsoft, Dolby, Netflix, and Cisco. Google supports it on high resolution video on YouTube and Chrome. The OTT space has been the major driver with Netflix, Hulu, Roku and others supporting DASH today.
What about Apple and HLS? Currently Apple is holding back on supporting DASH – there are competitive issues in play. This is a topic for another blog though.
To learn more, here are links to a couple of very good articles on MPEG DASH: