Dynamic Adaptive Streaming over HTTP
This article's lead section may be too long for the length of the article. (April 2016)
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 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 automatically selects from the alternatives the next segment to download and play based on current network conditions. The client automatically selects 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. 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 (video, TV, radio, etc.) 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.
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 as ISO/IEC 23009-1:2012 in April, 2012.
DASH is a technology related to Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) and Microsoft Smooth Streaming. DASH is based on Adaptive HTTP streaming (AHS) in 3GPP Release 9 and on HTTP Adaptive Streaming (HAS) in Open IPTV Forum Release 2. As part of their collaboration with MPEG, 3GPP Release 10 has adopted DASH (with specific codecs and operating modes) for use over wireless networks.
The DASH Industry Forum (DASH-IF) 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.
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 (MPD) describes segment information (timing, URL, media characteristics like video resolution and bit rates), 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 (e.g. MP4 file format) or MPEG-2 Transport Stream.
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 and QoE (Quality of Experience) fairness. DASH standard does not specify the adaptive bitrate streaming (ABR) 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 has announced its MPEG-DASH patent portfolio licence. It claims to include patents that are essential to the MPEG Dynamic Adaptive Streaming over HTTP standard.
This section contains information of unclear or questionable importance or relevance to the article's subject matter. (August 2016) (Learn how and when to remove this template message)
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.
Clients and libraries
- Dash.js is the official Dash Industry Forums Reference and Production player.
- Shaka is the open source dash player from Google.
- VLC Media Player 3.0 will ship a new client plugin for MP4/MPEG and Live streams.
- The cross-platform FOSS multimedia framework GStreamer has supported MPEG-DASH and WebM DASH since at least v1.4.
- The open-source library libdash is platform independent and runs on mobile platforms such as Android, iOS, Windows Phone.
- bitmovin provides the bitdash MPEG-DASH player for HTML5 and Flash.
- castLabs provides end-to-end solutions both for MPEG-DASH packaging and playback.
- THEOplayer is currently looking for parties to test their MPEG-DASH video player.
- Viblast Player has support for MPEG-DASH in HTML5 and provides an SDK for iOS and Android.
- OSMO4 from GPAC at Telecom ParisTech supports MPEG-DASH.
- DASH-JS from ITEC at University of Klagenfurt supports MPEG-DASH.
- Radiant Media Player supports MPEG-DASH (DASH264 and WebM DASH) in HTML5.
- Videogular is a video application framework for desktop and mobile powered by AngularJS, The HTML5 video player for AngularJS
- libndash is an open source (Apache License) C++ library that provides all the functionality needed to build a full-featured native-code MPEG-DASH media player (not including decoding/rendering frames to a display).
- youtube-dl allows to download specific video and audio formats based on the media presentation description (MPD).
- Kaltura provides 2 open source web media players including UI and plugins such as Analytics on top of Shaka form Google. mwEmbed and playkit-js.
- Fluid Player is an open source HTML5 video player with MPEG-DASH support and VAST capabilities.
Note that no specific support is required from the server for DASH content, with the exception of Live Streaming.
- The Kaltura Video Packager is an open source video packager that supports on the fly MPEG-DASH packaging from mp4 files, with capabilities including stitching of files, DRM and more.
- Brightcove Zencoder has support for MPEG-DASH transmuxing/transcoding.
- Elemental Technologies video processing solutions support DASH.
- Helix Universal Server has support for DASH in various modes.
- nginx-rtmp-module supports generating MPEG-DASH live streams. Before version 1.2.0  they could only be played with a modified version of dash.js and with bitdash.
- nginx-ts-module supports live MPEG-DASH 
- Nimble Streamer has live and VOD MPEG-DASH support. For VOD it supports both H.265 and H.264 codecs
- Unified Origin supports MPEG-DASH.
- Amazon Web Services Elastic Transcoder has support for MPEG-DASH.
- Akamai CDN supports DASH.
- Amazon CloudFront CDN supports DASH.
- Bitmovin provides the cloud-based transcoding service bitcodin.com which supports MPEG-DASH.
- CloudFlare Stream supports transcoding into DASH in VP9 before serving to the end user.
- Kollective Technology Inc. ECDN supports DASH.
- Level 3 Communications CDN supports DASH.
- Limelight Networks CDN supports DASH.
- Azure Media Services platform has support for MPEG-DASH.* Qencode has support for MPEG-DASH.
- Tata Communications CDN supports DASH.
- Kaltura VPaaS provides a cloud-based transcoding services that supports on the fly packaging for MPEG-DASH.
- ITEC's DASHEncoder.
- MP4Box and its multimedia framework from GPAC at Telecom ParisTech
- dashcast from Telecom ParisTech supports MPEG-DASH live streaming
- MediaGoom MPEG-DASH Packager
- Bento4 opensource tools and SDK
- ITEC offers a validation service for MPEG-DASH Media Presentation Description (MPD) files
- Multiple DASH datasets are offered by the Institute of Information Technology (ITEC) at Alpen-Adria University Klagenfurt, the GPAC group at Telecom ParisTech and Digital TV Labs.
- The BBC has DASH test streams, including DASH over HTTP/2.
- Widevine DRM supports DASH and Encrypted Media Extensions.
Supported players and servers
|Product||Platform||Live Streaming||DRM||As of Version||Editor|
|Microsoft Edge (web browser)||Windows 10||Yes||Yes||EdgeHTML v12+||Microsoft|
|VLC media player (media player)||Windows, macOS, Linux, Android, iOS, Windows Phone||Yes||Unknown||v3.0||VideoLAN|
|MX Player (media player)||Android||Yes||Yes||v1.9.18
Support for playback of DASH streams is currently unstable.
|TV Streams (media player)||macOS, iOS, tvOS||Yes||Yes||v7.1||Tiago Martinho|
|Dash.js (SDK)||HTML5 (MSE Browsers)||Yes||Yes||-||Dash Industry Forum|
|Shaka Player (SDK)||HTML5 (MSE Browsers)||Yes||Yes||-|
|bitdash (SDK)||HTML5 (MSE Browsers), Android, LG TVs, Samsung TVs, XBox One, Universal Windows Platform||Yes||Yes||-||Bitmovin|
|PRESTOplay (SDK)||HTML5 (MSE Browsers), Android, iOS, Windows, Mac||Yes||Yes||-||castLabs|
|THEOplayer (SDK)||HTML5 (MSE Browsers)||Yes||Yes||-||THEO Technologies NV|
|Viblast Player (SDK)||HTML5 (MSE Browsers), Android, iOS||Yes||Yes||-||Viblast Team|
|Radiant Media Player (SDK)||HTML5 (MSE Browsers), Android, iOS, Windows, Mac, Linux||Yes||Yes||-||Radiant Media Player|
|Videogular (SDK)||HTML5 (MSE Browsers)||Yes||Yes||-|
|Fluid Player (SDK)||HTML5 (MSE Browsers)||Yes||Yes||-||ExoClick|
|GStreamer (multimedia framework)||-||Yes||Yes||1.4||GStreamer Team|
|Libdash (multimedia framework)||-||Yes||Yes||-||bitmovin, ITEC Team|
|GPAC (multimedia framework)||-||Yes||Yes||-||Telecom ParisTech inc.|
- "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Archived from the original on 2012-08-20. Retrieved 2012-08-26.
- "MPEG-DASH vs. Apple HLS vs. Microsoft Smooth Streaming vs. Adobe HDS". 2015-03-29. Retrieved 3 June 2016.
- ISO/IEC DIS 23009-1.2 Dynamic adaptive streaming over HTTP (DASH)
- ETSI 3GPP 3GPP TS 26.247; Transparent end-to-end packet-switched streaming service (PSS); Progressive Download and Dynamic Adaptive Streaming over HTTP (3GP-DASH)
- Open IPTV Forum Solution Specification Volume 2a – HTTP Adaptive Streaming V2.1 Archived 2011-10-09 at the Wayback Machine.
- DASH Industry Forum
- HbbTV Specification 1.5 Archived 2014-07-03 at the Wayback Machine.
- Overview of Dynamic Adaptive Streaming over HTTP (DASH)
- 3GPP Dynamic Adaptive Streaming over HTTP – Standards and Design Principles by T. Stockhammer
- Towards Network-wide QoE Fairness using OpenFlow-assisted Adaptive Video Streaming
- A. Bentaleb, B. Taani, A. Begen, C. Timmermer, and R. Zimmermann, "A Survey on Bitrate Adaptation Schemes for Streaming Media over HTTP", In IEEE Communications Surveys & Tutorials (IEEE COMST), Volume 1 Issue 1, pp. 1-1, 2018.
- Y. Liu, J. Geurts, J.-P. Point, S. Lederer, B. Rainer, C. Mueller, C. Timmerer and H. Hellwagner, "Dynamic Adaptive Streaming over CCN: A Caching and Overhead Analysis", In Proceedings of the IEEE International Conference on Communication (ICC) 2013 – Next-Generation Networking Symposium, Budapest, Hungary, June, 2013
- MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH Archived 2015-08-07 at the Wayback Machine.
- Device Compatibility
- The Status of MPEG-DASH today, and why Youtube & Netflix use it in HTML5
- HTML5 Media Source Extensions
- bitdash DRM Testarea Archived 2015-07-03 at the Wayback Machine.
- HTML5 Encrypted Media Extensions
- 360° Streaming in HTML5
- Cimpanu, Catalin (2015-08-24). "Meet Shaka Player, Google's HTML5 Video Player for Low Bandwidth Conditions". Softpedia. Retrieved 2016-08-13.
- DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
- C. Müller and C. Timmerer, "A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP", In Proceedings of the ACM Multimedia 2011 , Scottsdale, Arizona, November 28, 2011.
- "VLC 3.0 features".
- HTTP Adaptive streaming with GStreamer
- libdash: Open-source DASH client library by bitmovin Gmbh
- bitdash MPEG-DASH Player Feature Details
- castLabs Video Toolkit
- castLabs PRESTOplay Video Player SDKs
- "HLS HTML5 Video Player | THEOplayer". HLS HTML5 Video Player | THEOplayer. Retrieved 2016-02-15.
- OSMO4 Player of GPAC
- DASH-JS at ITEC of Klagenfurt University
- Radiant Media Player Compatibility Table
- "README.md". youtube-dl.org. Retrieved 2018-01-28.
youtube-dl on GitHub
- "DASH Streaming and Playlists".
- MPEG-DASH in nginx-rtmp-module 1.0.8
- MPEG-DASH improvements in nginx-rtmp-module 1.2.0
- MPEG-DASH live streaming in nginx-rtmp-module
- bitdash MPEG-DASH player for HTML5 and Flash
- Introducing nginx-ts-module for HLS and MPEG-DASH live streaming
- MPEG-DASH support in Nimble Streamer
- Netview and Unified Streaming streaming DASH
- USP Factsheet
- "Amazon Elastic Transcoder Now Supports MPEG-DASH". Amazon Web Services, Inc. Retrieved 2016-06-03.
- Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows
- bitcodin.com Supported Formats
- MPEG-DASH and streaming reference and resources
- "Qencode supported formats include HLS and MPEG-DASH". Qencode, Inc.
- S. Lederer, C. Mueller and C. Timmerer, "Dynamic Adaptive Streaming over HTTP Dataset", In Proceedings of the ACM Multimedia Systems Conference 2012, Chapel Hill, North Carolina, February 22-24, 2012.
- GPAC Telecom ParisTech
- dashcast of Telecom ParisTech
- "MediaGoom. Essential Web Streaming".
- Bento4 MPEG DASH Documentation
- MPEG DASH Dataset Overview
- S. Lederer, C. Mueller, C. Timmerer, C. Concolato, J. Le Feuvre and K. Fliegel, Distributed DASH Dataset, In Proceedings of the ACM Conference on Multimedia Systems (ACM MMSys) 2013, Oslo, Norway, 2013.
- MPEG DASH Test Suite
- MPEG DASH Test Streams
- "The Complete Guide to Widevine". encoding.com. Retrieved 2018-01-11.
- Simplified Adaptive Video Streaming: Announcing support for HLS and DASH in Windows 10 – IEBlog