Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple’s HTTP Live Streaming (HLS) solution, MPEG-DASH works by breaking the content into a sequence of small HTTP-based file segments, each segment containing a short interval of playback time of a content that is potentially many hours in duration, such as a movie or the live broadcast of a sports event. The content is made available at a variety of different bit rates, i.e., alternative segments encoded at different bit rates covering aligned short intervals of play back time are made available. While the content is being played back by an MPEG-DASH client, the client automatically selects from the alternatives the next segment to download and play back based on current network conditions. The client selects the segment with the highest bit rate possible that can be downloaded in time for play back without causing stalls or re-buffering events in the playback. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions, and provide high quality play back with fewer stalls or re-buffering events.
MPEG-DASH is the first adaptive bit-rate HTTP-based streaming solution that is an international standard.[1] MPEG-DASH should not be confused with a protocol — the protocol that MPEG-DASH uses is HTTP, hence the “H” in the name.
MPEG-DASH uses existing HTTP web server infrastructure that is used for delivery of essentially all World Wide Web content. It allows devices like Internet-connected televisions, TV set-top boxes, desktop computers, smartphones, tablets, etc. to consume multimedia content (video, TV, radio…) delivered via the Internet, coping with variable Internet receiving conditions. Standardizing an adaptive streaming solution is meant to provide confidence to the market that the solution can be adopted for universal deployment, compared to similar but more proprietary solutions like Smooth Streaming by Microsoft, or HDS by Adobe.
Standardization
MPEG-DASH technology was developed under MPEG. Work on DASH started in 2010; it became a Draft International Standard in January 2011, and an International Standard in November 2011.[1][2][3] The MPEG-DASH standard was published as ISO/IEC 23009-1:2012 in April, 2012. In July 2013, the second edition of MPEG-DASH has been approved incorporating first amendment and corrigenda including support for event messages and media presentation anchors.[4]
DASH is a technology related to Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) and Microsoft Smooth Streaming.[5] DASH is based on Adaptive HTTP streaming (AHS) in 3GPP Release 9 and on HTTP Adaptive Streaming (HAS) in Open IPTV Forum Release 2.[6][7] As part of their collaboration with MPEG, 3GPP Release 10 has adopted DASH (with specific codecs and operating modes) for use over wireless networks.[6]
The DASH Industry Forum (DASH-IF)[8] further promotes and catalyze the adoption of MPEG-DASH and help transition it from a specification into a real business. It consists of the major streaming and media companies, including Microsoft, Netflix, Google, Ericsson, Samsung, Adobe, etc. and creates guidelines on the usage of DASH for different use cases in practice.
MPEG-DASH is integrated in other standards, e.g. MPEG-DASH is supported in HbbTV (> Version 1.5)[9] as well as HTML5. HTML5 offers the MPEG-DASH support via the HTML5 Media Source Extensions (MSE)[10] and supports DRM for MPEG-DASH by the HTML5 Encrypted Media Extensions.[11] Additionally MPEG-DASH is available natively on Android through the ExoPlayer, on Samsung Smart TVs 2012+, LG Smart TV 2012+, Sony TV 2012+, Philips NetTV 4.1+, Panasonic Vierra 2013+ and Chromecast.[12] YouTube as well as Netflix already support MPEG-DASH for HTML5, and different MPEG-DASH players are available.[13]
Overview
DASH is an adaptive bitrate streaming technology where a multimedia file is partitioned into one or more segments and delivered to a client using HTTP.[14] A media presentation description (MPD) describes segment information (timing, URL, media characteristics like video resolution and bit rates).[15] Segments can contain any media data, however the specification provides specific guidance and formats for use with two types of containers: ISO base media file format (e.g. MP4 file format) or MPEG-2 Transport Stream.[5] DASH is audio/video codec agnostic. One or more representations (i.e., versions at different resolutions or bit rates) of multimedia files are typically available, and selection can be made based on network conditions, device capabilities and user preferences, enabling adaptive bitrate streaming[16] and QoE fairness.[17] DASH is also agnostic to the underlying application layer protocol. Thus, DASH can be used with any protocol, e.g., like DASH over CCN.[18]
Implementations
Some of existing implementations of MPEG-DASH standard for clients and servers include the following solutions.
Clients and libraries
The DASH Industry Forum reference implemention dash.js[10] Javascript/HTML5 Player.[19][20]
VLC Media Player 3.0 will ship new client plugin for MP4/MPEG and Live streams.[21][22][23]
HTML5-based bitdash[24] MPEG-DASH player, which also has a fallback to MPEG-DASH playback in Flash.
The open-source library libdash[25] is platform independent and runs on mobile platforms such as Android, iOS, Windows Phone.
HTML5 Media Source Extensions (MSE)[10]
Servers
Note that no specific support is required from server for DASH content, with the exception of Live Streaming.
Helix Universal Server has support for DASH in various modes.
Nginx-rtmp-module supports generating MPEG-DASH live streams since version 1.0.8.[26] They can be played with a modified version of dash.js[27] and with bitdash.[24]
Nimble Streamer supports MPEG-DASH live streams and VOD.[28]
Path1 PiXiE Encoder supports generating DASH live streams.[29]
Wowza Streaming Engine has full support for MPEG-DASH.[30]
bitcodin.com Transcoding Cloud Service supports MPEG-DASH for live streams and VOD.[31]
Akamai CDN supports DASH.[32]
Arkena CDN supports DASH.[33]
Azure Media Services platform has support for MPEG-DASH.[34]
Limelight Networks CDN supports DASH.[35]
Unified Origin supports MPEG-DASH.[36][37]
Content Generators
ITEC’s DASHEncoder.[21][38]
MP4Box and its multimedia framework from GPAC at Telecom ParisTech[39]
Other
ITEC offers a validation service for MPEG-DASH Media Presentation Description (MPD) files.[21]
Multiple DASH datasets are offered by the Institute of Information Technology (ITEC) at Alpen-Adria University Klagenfurt,[38][40] the GPAC group at Telecom ParisTech[39] and Digital TV Labs.[41]
BBC has DASH test streams, including DASH over HTTP/2 [2]