MPEG-DASH – Video Dynamic Adaptive Streaming over HTTP

MPEG-DASHDynamic Adaptive Streaming over HTTP (DASH), is a new standard that enables high quality streaming of media content over the Internet, delivered from conventional HTTP web servers. It works by breaking multi-bitrate encoded content into small segments. A client continuously adjusts its requests according to the local bandwidth condition. It also allows for mixing up variously encoded material in one stream.

DASH is codec/content agnostic, however its prime implementation will be for video in the MP4 and MPEG-TS containers. This is known as MPEG-DASH, and the common file extension will be mpd. As compatible clients become available it promises to be widely adopted, as it enables playback on a wide range of devices. MPEG-DASH will also allow seamless adoption of the coming improved HEVC video codec aka h.265.

DASH does have competition, mainly in the form of Apple’s HLS, but it has the support of both Microsoft and Adobe – it’s backwards compatible with their own existing systems – plus Google. A panel of industry experts at Streaming Media East 2012 predicted it would have market dominance by 2015.

Encryption is part of the standard. A sticking point has been the inability to agree on a common DRM scheme. In January 2013, provisional MPEG DASH-264 guidelines were released that allow DRM to be specified.

libdash is an open-source C++ library that provides an object orient (OO) interface to the MPEG-DASH standard. The project contains a sample multimedia player based on ffmpeg playback of mpd files. (slides)

Adobe and Akamai provide an MPEG-DASH Prototype player at http://tinyurl.com/dash4you. More demos are available.