MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) / DASH-264 2016
Whenever a new technology is emerging, especially the one that can give some order to the mess, lots of people pray the technology would be the final ONE. While H.265 and HTML5 are lurking on the horizon, let's look at one of the new technology that could clean-up the mess caused by lots of codecs, containers, and streaming protocols.
MPEG DASH is an ISO standard for dynamic adaptive streaming over HTTP. It could potentially supersede the proprietary DASHs such as Microsoft's Smooth Streaming, Adobe's Dynamic Streaming, and Apple's HTTP Live Streaming. With the emergence of various competing HTTP-based adaptive streaming solutions over the past several years as listed above, it quickly became obvious that multiple competing adaptive streaming technologies were contributing to the fragmentation of the streaming media market, increasing storage and bandwidth costs, and impairing customer reach. So, efforts to standardize HTTP-based adaptive streaming beganvn 3GPP in 2009, and DASH was ratified by ISO/IEC as a standard in November 2011.
Adaptive streaming defines Segments that are a few seconds long and a playlist format that describes alternative encodings of each Segment with different bitrates, resolutions, codecs, etc. Devices can download a sequence of Segments of compatible types with a particular video bitrate and resolution, and audio language from a set of alternatives typically stored on Web servers.
Dynamic adaptation is the ability of each device to automatically switch the next Segment selection to an alternative resolution and bitrate so that it can adapt to changes in network bandwidth and client conditions. The video quality will only be as good as the effective network bandwidth allows, but will be the best possible quality rather than some lowest common denominator fixed bitrate that still causes paused for rebuffering errors when bandwidth temporarily reduces.
Because the adaptive intelligence is inside each device, and Web servers and Content Delivery Networks (CDNs) are stateless HTTP servers, with only a small increase in server load, DASH can allow the number of clients for a particular presentation to scale to large numbers.
DASH uses XML to describe media presentations in a manifest file. It references media streams stored in ISO Base Media File Format. With the HTTP protocol and existing CDNs, the DASH enables a better video experience for end users by automatically adapting to varying client and network conditions during playback.
DASH has the potential to give content publishers access to any consumer on any video device capable of Internet access. generate a single set of files (based on DASH's standardized manifest) that would play on all devices, reducing both technical headaches and transcoding costs rather than preparing several servers and sets of content to reach different types of devices.
A DASH client retrieves and plays the video content using these steps: howstuffworks.com
- The client downloads and reads the Media Presentation Description (MPD) to get important information, such as the content locations, segment encodings, resolution, minimum and maximum bandwidths, accessibility features like closed captioning and content restrictions (such as DRM).
- The client selects an appropriate segment encoding and begins streaming the content through a series of HTTP requests. The server creates and encodes each segments on demand for each request, all from the same source.
- The client buffers data as it's downloaded, while also keeping track of fluctuations in the connection bandwidth. If necessary, the client automatically changes to a different segment encoding (from those listed by the MPD) that's more compatible with the current bitrate. This ensures the client maintains a sufficient buffer throughout the video without downloading more data than you need.
Adobe/Akamai MPEG-DASH Demo in Adobe Flash with the Prototype player.
At NAB 2012, Andy Plesser of BeetTV about DASH
Ph.D. / Golden Gate Ave, San Francisco / Seoul National Univ / Carnegie Mellon / UC Berkeley / DevOps / Deep Learning / Visualization