Dynamic Adaptive Streaming over HTTP

From Wikipedia, the free encyclopedia
  (Redirected from MPEG-DASH)
Jump to: navigation, search

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. As the content is 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 rebuffering events in the playback. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions, and provide high quality play back without stalls or rebuffering 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 the previously existing HTTP web server infrastructure that is used for delivery of essentially all World Wide Web content. It allows devices such as 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, thanks to its adaptive streaming technology. 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 such as Smooth Streaming by Microsoft, or HDS by Adobe.

Standardization[edit]

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]

Overview[edit]

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.[8] A media presentation description (MPD) describes segment information (timing, URL, media characteristics such as video resolution and bit rates).[9] 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[10] and QoE fairness.[11] DASH is also agnostic to the underlying application layer protocol. Thus, DASH can be used with any protocol, e.g., like DASH over CCN.[12]

Implementations[edit]

DASH player and library implementations of DASH are the DASH VLC plugin of the Institute of Information Technology (ITEC) at Alpen-Adria University Klagenfurt,[13][14] the open-source DASH client library libdash of the Austrian company bitmovin GmbH,[15] the multimedia framework of the GPAC group at Telecom ParisTech [16] and by the German company castLabs GmbH. Content generation is possible using MP4Box from GPAC[16] or the wrapper tool DASHEncoder (also of ITEC).[13][17] A DASH server and Android (2.2 to 4.x) SDK player implementation was demonstrated by RealNetworks at the IBC 2012 with the Helix Universal Server and the Helix SDK for Android demonstrating MPEG2-TS (Smart TV) and ISO BMFF (MP4 Smartphone / Tablet) delivery and playback formats commercially available from November 2012. See Helix Universal Server for further information. The open-source library libdash[15] is platform independent and thus, also runs on mobile platforms like Android, iOS, Windows Phone, etc.

Multiple DASH datasets are offered by the Institute of Information Technology (ITEC) at Alpen-Adria University Klagenfurt,[17][18] the GPAC group at Telecom ParisTech[16] and Digital TV Labs.[19]

ITEC offers a validation service for MPEG-DASH Media Presentation Description (MPD) files.[13]

Nginx-rtmp-module supports generating MPEG-DASH live streams since version 1.0.8.[20] They can be played with a slightly modified version of dash.js[21] as well as with bitdash.[22]

Within website DASH can be used via the HTML5 Media Source Extentions (MSE)[23] and JavaScript-based DASH players. Such players are, e.g., the open-source project dash.js[23] of the DASH Industry Forum, but there are also products such as bitdash[22] (using HTML5 with JavaScript, but also a Flash-based DASH players for legacy Web browsers).

References[edit]

  1. ^ a b "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Retrieved 2012-08-26. 
  2. ^ HTTP streaming of MPEG media – blog entry
  3. ^ ISO/IEC DIS 23009-1.2 Dynamic adaptive streaming over HTTP (DASH)
  4. ^ - MPEG-DASH 2nd edition - blog entry
  5. ^ a b Updates on DASH – blog entry
  6. ^ a b 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)
  7. ^ Open IPTV Forum Solution Specification Volume 2a – HTTP Adaptive Streaming V2.1
  8. ^ Overview of Dynamic Adaptive Streaming over HTTP (DASH)
  9. ^ DASH Overview by C. Timmerer and C. Mueller
  10. ^ 3GPP Dynamic Adaptive Streaming over HTTP – Standards and Design Principles by T. Stockhammer
  11. ^ http://scholar.google.com/citations?view_op=view_citation&citation_for_view=ZDbuOE4AAAAJ:hqOjcs7Dif8C
  12. ^ 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
  13. ^ a b c DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
  14. ^ 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.
  15. ^ a b libdash: Open-source DASH client library by bitmovin Gmbh
  16. ^ a b c GPAC Telecom ParisTech
  17. ^ a b 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.
  18. ^ 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.
  19. ^ MPEG DASH Test Suite
  20. ^ MPEG-DASH in nginx-rtmp-module 1.0.8
  21. ^ MPEG-DASH live streaming in nginx-rtmp-module
  22. ^ a b bitdash MPEG-DASH Player (HTML5 & Flash) www.dash-player.com
  23. ^ a b HTML5 MSE

External links[edit]