Dynamic Adaptive Streaming over HTTP


Dynamic Adaptive Streaming over HTTP, 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 solution, MPEG-DASH works by breaking the content into a sequence of small segments, which are served over HTTP. Each segment contains a short interval of playback time of 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 playback time. While the content is being played back by an MPEG-DASH client, the client uses a bit rate adaptation algorithm to automatically select the segment with the highest bit rate possible that can be downloaded in time for playback without causing stalls or re-buffering events in the playback. The current MPEG-DASH reference client offers both buffer-based and hybrid bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with fewer stalls or re-buffering events.
MPEG-DASH is the first adaptive bit-rate HTTP-based streaming solution that is an international standard. MPEG-DASH should not be confused with a transport protocol — the transport protocol that MPEG-DASH uses is TCP. 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 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. Unlike HDS, or Smooth Streaming, DASH is codec-agnostic, which means it can use content encoded with any coding format, such as H.265, H.264, VP9, etc.

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. The MPEG-DASH standard was published in April, 2012 but has been revised in 2019 as .
DASH is a technology related to Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming and Microsoft Smooth Streaming. DASH is based on Adaptive HTTP streaming in 3GPP Release 9 and on HTTP Adaptive Streaming in Open IPTV Forum Release 2. As part of their collaboration with MPEG, 3GPP Release 10 has adopted DASH for use over wireless networks.
The DASH Industry Forum further promotes and catalyzes the adoption of MPEG-DASH and helps transition it from a specification into a real business. It consists of 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.

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. A media presentation description describes segment information, and can be organized in different ways such as SegmentList, SegmentTemplate, SegmentBase and SegmentTimeline, depending on the use case. 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 or MPEG-2 Transport Stream.
DASH is audio/video codec agnostic. One or more representations of multimedia files are typically available, and selection can be made based on network conditions, device capabilities and user preferences, enabling adaptive bitrate streaming and QoE fairness. DASH standard does not specify the adaptive bitrate streaming logic. DASH is also agnostic to the underlying application layer protocol. Thus, DASH can be used with any protocol, e.g., DASH over CCN.
On July 27, 2015, MPEG LA announced a call for MPEG-DASH-related patents in order to create a single patent pool for this technology. MPEG LA announced its MPEG-DASH patent portfolio licence. It includes patents that are essential to the MPEG Dynamic Adaptive Streaming over HTTP standard.

Implementations

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 Viera 2013+ and Chromecast. YouTube as well as Netflix already support MPEG-DASH, and different MPEG-DASH players are available.
While MPEG-DASH isn't directly supported in HTML5, there are JavaScript implementations of MPEG-DASH which allow using MPEG-DASH in web browsers using the HTML5 Media Source Extensions. There are also JavaScript implementations such as the bitdash player which support DRM for MPEG-DASH using the HTML5 Encrypted Media Extensions. In combination with WebGL, the HTML5-based adaptive bitrate streaming of MPEG-DASH enables also the efficient streaming of 360° video for live and on-demand use cases.

Clients and libraries

Note that no specific support is required from the server for DASH content, with the exception of Live Streaming.

Clients

Currently, DASH streaming is only natively supported on Windows 10 via Microsoft Edge. DASH support on other browsers & operating systems is available via Media Source Extensions.
ProductPlatformLive StreamingDRMAs of VersionEditor
Microsoft Edge Windows 10EdgeHTML v12+Microsoft
VLC media player Windows, macOS, Linux, Android, iOS, Windows Phonev3.0VideoLAN
MX Player Androidv1.9.18
Support for playback of DASH streams is currently unstable.
J2 Interactive
NexPlayer HTML5, Android, iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS-NexStreaming
Dash.js HTML5 -Dash Industry Forum
Shaka Player HTML5 -Google
Rx-Player HTML5 -Canal+
bitdash HTML5, Android, LG TVs, Samsung TVs, Xbox One, Universal Windows Platform-Bitmovin
PRESTOplay HTML5, Android, iOS, Windows, Mac-castLabs
THEOplayer HTML5, Android, iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS-THEO Technologies NV
Viblast Player HTML5, Android, iOS-Viblast Team
Radiant Media Player HTML5, Android, iOS, Windows, Mac, Linux-Radiant Media Player
Videogular HTML5 -
Fluid Player HTML5 -ExoClick
GStreamer -1.4GStreamer Team
Libdash --bitmovin, ITEC Team
GPAC --Telecom ParisTech inc.

Patent holders