Dynamic Adaptive Streaming over HTTP
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 segments, which are served over HTTP. An early HTTP web server based streaming system called SProxy was developed and deployed in the Hewlett Packard Laboratories in 2006.[1][2] It showed how to use HTTP range requests to break the content into small segments. SProxy shows the effectiveness of segment based streaming, gaining best Internet penetration due to the wide deployment of firewalls, and reducing the unnecessary traffic transmission if a user chooses to terminate the streaming session earlier before reaching the end. 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 sport 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 (ABR) algorithm[3] 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.[4] The current MPEG-DASH reference client dash.js[5] offers both buffer-based (BOLA[6]) and hybrid (DYNAMIC[4]) bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with few stalls or re-buffering events.
MPEG-DASH is the first adaptive bit-rate HTTP-based streaming solution that is an international standard.[7] 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 receive 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. 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.[8]
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.[7][9] The MPEG-DASH standard was published in April, 2012 but has been revised in 2019 and then once more in 2022 as [1].
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.[10][11] As part of their collaboration with MPEG, 3GPP Release 10 has adopted DASH (with specific codecs and operating modes) for use over wireless networks.[10]
The DASH Industry Forum (DASH-IF)[12] 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 (as of Version 1.5).[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), 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[15] and QoE (Quality of Experience) fairness.[16] DASH standard does not specify the adaptive bitrate streaming (ABR) logic.[17] DASH is also agnostic to the underlying application layer protocol. Thus, DASH can be used with any protocol, e.g., DASH over CCN.[18]
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.[19] MPEG LA announced its MPEG-DASH patent portfolio licence. MPEG-LA claims that the included patents are essential to the MPEG Dynamic Adaptive Streaming over HTTP standard.[20]
Implementations
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,[21] on Samsung Smart TVs 2012+, LG Smart TV 2012+, Sony TV 2012+, Philips NetTV 4.1+, Panasonic Viera 2013+ and Chromecast.[22] YouTube as well as Netflix already support MPEG-DASH, and different MPEG-DASH players are available.[23]
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 (MSE).[24] There are also JavaScript implementations such as the bitdash player[25] which support DRM for MPEG-DASH using the HTML5 Encrypted Media Extensions.[26] 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.[27]
Clients and libraries
- Shaka Player, is the open source DASH HTML5 video player from Google for Low Bandwidth Connections.[28][29][30][31][32]
- VLC media player 3.0 shipped a new client plugin for MP4/MPEG and Live streams.[33][34][35]
- The cross-platform FOSS multimedia framework GStreamer has supported MPEG-DASH and WebM DASH since at least v1.4.[36]
- The open-source library libdash[37] 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.[38]
- VideoJS is an open-source HTML5 video player, supports HLS, DASH, WebM, and progressive MP4 for Live and VOD streaming.[28][29]
- Clappr is an open-source HTML5 video player, uses HTMLVideoElement, supports DASH, HLS, progressive, ad insertion, dynamic overlays, picture-in-picture[29][28]
Servers
Note that no specific support is required from the server for DASH content, with the exception of Live Streaming.
- Wowza Streaming Engine has support MPEG-DASH playback with DVR and provides DASH Stream Target publishing to Akamai.[39]
- Brightcove Zencoder has support for MPEG-DASH transmuxing/transcoding.[40]
- Elemental Technologies video processing solutions support DASH.
- Helix Universal Server has support for DASH in various modes.
- Nimble Streamer has live and VOD MPEG-DASH support. For VOD it supports both H.265 and H.264 codecs[41]
- Unified Origin supports MPEG-DASH.[42][43]
Services
- Akamai CDN supports DASH.[44]
- Amazon CloudFront CDN supports DASH.
- Amazon Web Services Elastic Transcoder has support for MPEG-DASH.[45]
- Azure Media Services platform has support for MPEG-DASH.[46]
- Bitmovin provides the cloud-based transcoding service bitcodin.com which supports MPEG-DASH.[47]
- CloudFlare Stream supports transcoding into DASH in VP9 before serving to the end user.
- Cloudinary provides automatic transcoding with support for MPEG-DASH.[48]
- Lumen CDN supports DASH.
- Limelight Networks CDN supports DASH.
- Project Shield CDN supports DASH.[49]
- Tata Communications CDN supports DASH.
- DogalZeka MS2 Alarm Monitoring, Transcoding and Recording DASH input/output support.[citation needed]
- Resi Live Stream Platform supports ingest, transcoding and CDN delivery of MPEG-DASH.[citation needed]
Content generators
- ITEC's DASHEncoder.[33][50]
- MP4Box and its multimedia framework from GPAC at Télécom Paris[51]
- dashcast from Télécom Paris supports MPEG-DASH live streaming[52]
- MediaGoom MPEG-DASH Packager[53]
- Bento4 opensource tools and SDK[54]
Other
- ITEC offers a validation service for MPEG-DASH Media Presentation Description (MPD) files[33]
- Multiple DASH datasets[55] are offered by the Institute of Information Technology (ITEC) at Alpen-Adria University Klagenfurt,[50][56] the GPAC group at Telecom ParisTech[51] and Digital TV Labs.[57]
- The BBC has DASH test streams, including DASH over HTTP/2.[58]
- Widevine DRM supports DASH and Encrypted Media Extensions.[59]
- Mividi provides software tool for analyzing and monitoring live MPEG-DASH streams.[60]
Supported players and servers
Clients
Windows 10 used to have native support for DASH streaming in EdgeHTML, a proprietary browser engine that was used in Microsoft Edge (now referred to as Edge Legacy) before the transition to the Chromium-based Blink browser engine. Edge Legacy was included in Windows 10 up till version 2004. It was replaced by Edge Chromium in version 20H2.
DASH support on other browsers & operating systems is available via Media Source Extensions.
Product | Product type | Platform | Live streaming | DRM-free | As of version | Editor |
---|---|---|---|---|---|---|
Microsoft Edge | Web browser | Windows 10 | Native support on Edge Legacy. Support via Media Source Extensions on Edge Chromium. |
No | Supported natively on Edge Legacy's engine EdgeHTML from version 12 to 18.[61] No native support on Edge Chromium from version 79 to present.[62] |
Microsoft |
VLC media player | Media player | Windows, macOS, Linux, Android, iOS, Windows Phone | Yes | Yes | v3.0 | VideoLAN |
Media Player Classic - Home Cinema (MPC-HC) Media Player Classic - Black Edition (MPC-BE) |
Media player | Windows | Yes | Yes | v2.0.0 (MPC-HC) v1.5.0 (MPC-BE)[63] Support for playback of DASH streams may be unstable. |
MPC-HC Community Forum, Alexander Vodiannikov |
MX Player | Media player | Android | Yes | No | v1.9.18 Support for playback of DASH streams is currently unstable. |
J2 Interactive |
NexPlayer | SDK | HTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS | Yes | No | — | NexStreaming |
Dash.js | SDK | HTML5 (MSE Browsers) | Yes | No | — | Dash Industry Forum |
Shaka Player | SDK | HTML5 (MSE Browsers) | Yes | No | — | |
Rx-Player | SDK | HTML5 (MSE Browsers) | Yes | No | — | Canal+ |
bitdash | SDK | HTML5 (MSE Browsers), Android, LG TVs, Samsung TVs, Xbox One, Universal Windows Platform | Yes | No | — | Bitmovin |
PRESTOplay | SDK | HTML5 (MSE Browsers), Android, iOS, Windows, Mac | Yes | No | — | castLabs |
THEOplayer | SDK | HTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS | Yes | No | — | THEO Technologies NV |
Viblast Player | SDK | HTML5 (MSE Browsers), Android, iOS | Yes | No | — | Viblast Team |
Radiant Media Player | SDK | HTML5 (MSE Browsers), Android, iOS, Windows, Mac, Linux | Yes | No | — | Radiant Media Player |
Videogular | SDK | HTML5 (MSE Browsers) | Yes | No | — | |
Fluid Player | SDK | HTML5 (MSE Browsers) | Yes | No | — | ExoClick |
GStreamer | Multimedia framework | — | Yes | No | 1.4 | GStreamer Team |
Libdash | Multimedia framework | — | Yes | No | — | bitmovin, ITEC Team |
GPAC | Multimedia framework | — | Yes | No | — | Telecom ParisTech inc. |
Patent holders
Organization | Patents[64] |
---|---|
Maxell | 15 |
The Netherlands Organisation for Applied Scientific Research (TNO) | 8 |
Nippon Telegraph and Telephone (NTT) | 5 |
Fraunhofer | 4 |
Columbia University | 4 |
Amotech Co., Ltd. | 2 |
AVerMedia Technologies, Inc. | 2 |
Cable Television Laboratories, Inc. | 2 |
Helios Streaming, LLC | 2 |
JVC Kenwood | 1 |
Lough Corrib Intellectual Property Limited | 1 |
References
- ↑ Chen, Songqing; Shen, Bo; Tan, Wai-tian; Wee, Susie; Zhang, Xiaodong (2006-07-09). "A Case for Internet Streaming via Web Servers". 2006 IEEE International Conference on Multimedia and Expo. pp. 2145–2148. doi:10.1109/ICME.2006.262660. ISBN 1-4244-0367-7. https://ieeexplore.ieee.org/document/4037057.
- ↑ Chen, Songqing; Shen, Bo; Wee, Susie; Zhang, Xiaodong (2007-07-23). "SProxy: A Caching Infrastructure to Support Internet Streaming". IEEE Transactions on Multimedia 9 (5): 1062–1072. doi:10.1109/TMM.2007.898943. ISSN 1520-9210. https://ieeexplore.ieee.org/document/4276704.
- ↑ "ABR Logic". https://github.com/Dash-Industry-Forum/dash.js/wiki/ABR-Logic.
- ↑ 4.0 4.1 "From Theory to Practice: Improving Bitrate Adaptation in the DASH Reference Player, by Spiteri, Sitaraman and Sparacio, ACM Multimedia Systems Conference, June 2018.". https://people.cs.umass.edu/~ramesh/Site/PUBLICATIONS_files/abr-dashjs.pdf.
- ↑ "dash.js JavaScript Reference Client Landing Page". https://reference.dashif.org/dash.js/.
- ↑ Spiteri, Kevin; Urgaonkar, Rahul; Sitaraman, Ramesh K. (2020). "BOLA: Near-optimal bitrate adaptation for online videos.". IEEE/ACM Transactions on Networking 28 (4): 1698–1711. doi:10.1109/TNET.2020.2996964.
- ↑ 7.0 7.1 "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. http://mpeg.chiariglione.org/meetings/geneva11-1/geneva_press.htm.
- ↑ "MPEG-DASH vs. Apple HLS vs. Microsoft Smooth Streaming vs. Adobe HDS". 2015-03-29. https://bitmovin.com/mpeg-dash-vs-apple-hls-vs-microsoft-smooth-streaming-vs-adobe-hds/.
- ↑ "ISO/IEC 23009-1:2012". https://www.iso.org/standard/57623.html.
- ↑ 10.0 10.1 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
- ↑ "DASH Industry Forum | Catalyzing the adoption of MPEG-DASH". https://dashif.org/.
- ↑ "HbbTV Specification 1.5". http://www.hbbtv.org/pages/about_hbbtv/HbbTV-specification-1-5.pdf.
- ↑ "Technologies | MPEG". https://mpeg.chiariglione.org/technologies/mpeg-b/mpb-dash/index.htm.
- ↑ 3GPP Dynamic Adaptive Streaming over HTTP – Standards and Design Principles by T. Stockhammer
- ↑ "Towards Network-wide QoE Fairness using OpenFlow-assisted Adaptive Video Streaming". https://scholar.google.com/citations?view_op=view_citation&citation_for_view=ZDbuOE4AAAAJ:hqOjcs7Dif8C.
- ↑ Bentaleb, Abdelhak; Taani, Bayan; Begen, Ali C.; Timmerer, Christian; Zimmermann, Roger (January 21, 2019). "A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP". IEEE Communications Surveys & Tutorials 21 (1): 562–585. doi:10.1109/COMST.2018.2862938.
- ↑ "DASH over ICN/CCN | ITEC – Dynamic Adaptive Streaming over HTTP". https://dash.itec.aau.at/dash-over-ccn/.
- ↑ "MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH". http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/96/n-15-07-27.pdf.
- ↑ "DASH Patent Portfolio License Briefing*". 2019-03-04. http://www.mpegla.com/main/programs/MPEG-DASH/Documents/DASHWeb.pdf.
- ↑ "ExoPlayer" (in en). https://developer.android.com/guide/topics/media/exoplayer.
- ↑ Device Compatibility
- ↑ The Status of MPEG-DASH today, and why Youtube & Netflix use it in HTML5
- ↑ HTML5 Media Source Extensions
- ↑ "Video Player SDKs for flawless viewing | HTML5 Player". https://bitmovin.com/video-player/.
- ↑ "Encrypted Media Extensions". https://w3c.github.io/encrypted-media/.
- ↑ "This demo shows the Bitmovin Player displaying a 360° video with VR". https://bitmovin.com/demos/vr-360.
- ↑ 28.0 28.1 28.2 Vijayanagar, Krishna Rao (3 June 2021). "Top 13 HTML5 Video Players for the Web Reviewed [2021"]. https://ottverse.com/best-html5-video-players-for-the-web-free-and-paid/.
- ↑ 29.0 29.1 29.2 "clappr dash.js hls.js rx-player shaka-player videojs-contrib-hls" (in en). https://www.npmtrends.com/clappr-vs-dash.js-vs-hls.js-vs-rx-player-vs-shaka-player-vs-videojs-contrib-hls.
- ↑ Zhang, Bo; Teixeira, Thiago; Reznik, Yuriy (24 June 2021). "Performance of Low-Latency HTTP-based Streaming Players". Proceedings of the 12th ACM Multimedia Systems Conference. pp. 356–362. doi:10.1145/3458305.3478442. ISBN 9781450384346.
- ↑ Cimpanu, Catalin (2015-08-24). "Meet Shaka Player, Google's HTML5 Video Player for Low Bandwidth Conditions". Softpedia. http://news.softpedia.com/news/meet-shaka-player-google-s-html5-video-player-for-low-bandwidth-conditions-489937.shtml.
- ↑ "Ultimate HTML5 Video-Player Showdown: 12 Players Compared" (in en). 28 June 2020. https://cloudinary.com/blog/html5_video_player.
- ↑ 33.0 33.1 33.2 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.". http://www-itec.uni-klu.ac.at/bib/files/p723-muller.pdf.
- ↑ "VLC 3.0 features". http://git.videolan.org/?p=vlc.git;a=commitdiff;h=c13e7d4a399911f263876a0ec0611e1fb27e8b43.
- ↑ "HTTP Adaptive Streaming with GStreamer – coaxion.net – slomo's blog". https://coaxion.net/blog/2014/05/http-adaptive-streaming-with-gstreamer/.
- ↑ libdash: Open-source DASH client library by bitmovin Gmbh
- ↑ "Video Player SDKs for flawless viewing | HTML5 Player". https://bitmovin.com/video-player/.
- ↑ "Stream MPEG-DASH over HTTP with Wowza Streaming Engine". https://www.wowza.com/docs/how-to-do-mpeg-dash-streaming.
- ↑ "DASH Streaming and Playlists". https://app.zencoder.com/docs/guides/encoding-settings/dash.
- ↑ "MPEG-DASH streaming via Nimble Streamer - Softvelum". https://wmspanel.com/nimble/dash.
- ↑ "Netview and Unified Streaming streaming DASH". https://www.streamingmedia.com/PressRelease/Netview-and-Unified-Streaming-streaming-DASH_27097.aspx.
- ↑ "USP Factsheet". http://www.unified-streaming.com/products/factsheet/.
- ↑ Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows
- ↑ "Amazon Elastic Transcoder Now Supports MPEG-DASH". https://aws.amazon.com/about-aws/whats-new/2016/05/amazon-elastic-transcoder-now-supports-mpeg-dash/.
- ↑ "MPEG-DASH and streaming reference and resources". 3 March 2016. http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx.
- ↑ "bitcodin.com Supported Formats". http://www.bitcodin.com/supported-formats/.
- ↑ "Deliver HLS and MPEG-DASH with the Cloudinary Video Player | Cloudinary". https://cloudinary.com/documentation/video_player_hls_dash.
- ↑ "Engineering Broadcast: FM and Online". 26 July 2017. https://tech.insanityradio.com/page/2/.
- ↑ 50.0 50.1 "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.". http://www-itec.uni-klu.ac.at/bib/files/p89-lederer.pdf.
- ↑ 51.0 51.1 "Fragmentation, segmentation, splitting and interleaving · gpac/gpac Wiki". https://github.com/gpac/gpac.
- ↑ "DashCast | GPAC". https://gpac.wp.imt.fr/dashcast/.
- ↑ "Media Goom. Essential Adaptive Web Streaming with MPEG-DASH and HLS". http://mediagoom.com/.
- ↑ "Getting Started - Bento4". https://www.bento4.com/developers/dash/.
- ↑ MPEG DASH Dataset Overview
- ↑ "Distributed DASH Datset | ITEC – Dynamic Adaptive Streaming over HTTP". https://dash.itec.aau.at/distributed-dash-datset/.
- ↑ "MPEG DASH Test Suite". http://digitaltv-labs.com/products/consumer_electronics/details/m-peg_dash.
- ↑ "MPEG DASH Test Streams". 9 September 2013. https://www.bbc.co.uk/rd/blog/2013-09-mpeg-dash-test-streams.
- ↑ "The Complete Guide to Widevine". encoding.com. https://www.encoding.com/widevine/.
- ↑ "MPEG-DASH Analysis and Monitoring Solution". https://mividi.com/en-US/solutions/MPEG-DASHAnalysisandMonitoringSolution.aspx.
- ↑ "Simplified Adaptive Video Streaming: Announcing support for HLS and DASH in Windows 10". 29 January 2015. https://learn.microsoft.com/en-us/archive/blogs/ie/simplified-adaptive-video-streaming-announcing-support-for-hls-and-dash-in-windows-10.
- ↑ "Dynamic Adaptive Streaming over HTTP (MPEG-DASH) | Can I use... Support tables for HTML5, CSS3, etc". https://caniuse.com/mpeg-dash.
- ↑ "MPC-BE Version History - VideoHelp". https://www.videohelp.com/software/MPC-BE/version-history.
- ↑ "DASH Patent List". https://www.mpegla.com/wp-content/uploads/DASHAtt1.pdf.
External links
- MPEG-DASH Standard
- DASH subscription mailing list
- DASH research at Alpen-Adria Universität Klagenfurt
- Mailing list of the open-source DASH client library libdash
Original source: https://en.wikipedia.org/wiki/Dynamic Adaptive Streaming over HTTP.
Read more |