Dynamic Adaptive Streaming over HTTP

Last updated

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.

Contents

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 .

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

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

Servers

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

Services

Content generators

Other

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.

ProductProduct typePlatformLive streamingDRM-freeAs of versionEditor
Microsoft Edge Web browserWindows 10Native support on Edge Legacy.

Support via Media Source Extensions on Edge Chromium.

NoSupported 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 playerWindows, macOS, Linux, Android, iOS, Windows PhoneYesYesv3.0 VideoLAN
Media Player Classic - Home Cinema (MPC-HC)

Media Player Classic - Black Edition (MPC-BE)

Media playerWindowsYesYesv2.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 PlayerMedia playerAndroidYesNov1.9.18
Support for playback of DASH streams is currently unstable.
J2 Interactive
NexPlayerSDKHTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOSYesNoNexStreaming
Dash.jsSDKHTML5 (MSE Browsers)YesNoDash Industry Forum
Shaka PlayerSDKHTML5 (MSE Browsers)YesNoGoogle
Rx-PlayerSDKHTML5 (MSE Browsers)YesNo Canal+
bitdashSDKHTML5 (MSE Browsers), Android, LG TVs, Samsung TVs, Xbox One, Universal Windows PlatformYesNo Bitmovin
PRESTOplaySDKHTML5 (MSE Browsers), Android, iOS, Windows, MacYesNocastLabs
THEOplayerSDKHTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOSYesNoTHEO Technologies NV
Viblast PlayerSDKHTML5 (MSE Browsers), Android, iOSYesNoViblast Team
Radiant Media PlayerSDKHTML5 (MSE Browsers), Android, iOS, Windows, Mac, LinuxYesNoRadiant Media Player
VideogularSDKHTML5 (MSE Browsers)YesNo
Fluid PlayerSDKHTML5 (MSE Browsers)YesNoExoClick
GStreamer Multimedia frameworkYesNo1.4GStreamer Team
Libdash Multimedia frameworkYesNobitmovin, ITEC Team
GPACMultimedia frameworkYesNoTelecom ParisTech inc.

Patent holders

OrganizationPatents [64]
Maxell 15
The Netherlands Organisation for Applied Scientific Research (TNO)8
Nippon Telegraph and Telephone (NTT)5
Fraunhofer4
Columbia University 4
Amotech Co., Ltd.2
AVerMedia Technologies, Inc.2
Cable Television Laboratories, Inc. 2
Helios Streaming, LLC2
JVC Kenwood 1
Lough Corrib Intellectual Property Limited1

Related Research Articles

Transcoding is the direct digital-to-digital conversion of one encoding to another, such as for video data files, audio files, or character encoding. This is usually done in cases where a target device does not support the format or has limited storage capacity that mandates a reduced file size, or to convert incompatible or obsolete data to a better-supported or modern format.

<span class="mw-page-title-main">High-Efficiency Advanced Audio Coding</span> Audio codec

High-Efficiency Advanced Audio Coding (HE-AAC) is an audio coding format for lossy data compression of digital audio defined as an MPEG-4 Audio profile in ISO/IEC 14496–3. It is an extension of Low Complexity AAC (AAC-LC) optimized for low-bitrate applications such as streaming audio. The usage profile HE-AAC v1 uses spectral band replication (SBR) to enhance the modified discrete cosine transform (MDCT) compression efficiency in the frequency domain. The usage profile HE-AAC v2 couples SBR with Parametric Stereo (PS) to further enhance the compression efficiency of stereo signals.

MPEG-4 Part 17, or MPEG-4 Timed Text (MP4TT), or MPEG-4 Streaming text format is the text-based subtitle format for MPEG-4, published as ISO/IEC 14496-17 in 2006. It was developed in response to the need for a generic method for coding of text as one of the multimedia components within audiovisual presentations.

These tables compare features of multimedia container formats, most often used for storing or streaming digital video or digital audio content. To see which multimedia players support which container format, look at comparison of media players.

<span class="mw-page-title-main">GPAC Project on Advanced Content</span>

GPAC Project on Advanced Content is an implementation of the MPEG-4 Systems standard written in ANSI C. GPAC provides tools for media playback, vector graphics and 3D rendering, MPEG-4 authoring and distribution.

HTTP Live Streaming is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2022, an annual video industry survey has consistently found it to be the most popular streaming format.

The HTML5 specification introduced the video element for the purpose of playing videos, partially replacing the object element. HTML5 video is intended by its creators to become the new standard way to show video on the web, instead of the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML5 video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

The Helix Universal Media Server was a product developed by RealNetworks and originates from the first streaming media server originally developed by Progressive Networks in 1994. It supported a variety of streaming media delivery transports including MPEG-DASH RTMP (flash), RTSP (standard), HTTP Live Streaming (HLS), Microsoft Silverlight and HTTP Progressive Download enabling mobile phone OS and PC OS media client delivery.

Adaptive bitrate streaming is a technique used in streaming multimedia over computer networks.

Sirannon is a free, open-source, media server and client. The goal is to aid in video research and experimental streaming. Sirannon allows the programmer to create a wide variety of media-handling components such as streaming, reading, writing, packetizing. By organizing these components in a workflow the programmer can create many applications such as a media server, media proxy or video tool. Sirannon was introduced at the ACM multimedia conference in October 2009 under its former name xStreamer.

Wowza Streaming Engine is a unified streaming media server software developed by Wowza. The server is used for streaming of live and on-demand video, audio, and rich Internet applications over IP networks to desktop, laptop, and tablet computers, mobile devices, IPTV set-top boxes, internet-connected TV sets, game consoles, and other network-connected devices. The server is a Java application deployable on most operating systems.

Unreal Media Server is a streaming server software created by Unreal Streaming Technologies.

An online video platform (OVP) enables users to upload, convert, store, and play back video content on the Internet, often via a private server structured, large-scale system that may generate revenue. Users will generally upload video content via the hosting service's website, mobile or desktop application, or other interfaces (API), and typically provides embed codes or links that allow others to view the video content.

Encrypted Media Extensions (EME) is a W3C specification for providing a communication channel between web browsers and the Content Decryption Module (CDM) software which implements digital rights management (DRM). This allows the use of HTML5 video to play back DRM-wrapped content such as streaming video services without the use of heavy third-party media plugins like Adobe Flash or Microsoft Silverlight. The use of a third-party key management system may be required, depending on whether the publisher chooses to scramble the keys.

Media Source Extensions (MSE) is a W3C specification that allows JavaScript to send byte streams to media codecs within web browsers that support HTML5 video and audio. Among other possible uses, this allows the implementation of client-side prefetching and buffering code for streaming media entirely in JavaScript. It is compatible with, but should not be confused with, the Encrypted Media Extensions (EME) specification, and neither requires the use of the other, although many EME implementations are only capable of decrypting media data provided via MSE.

Timed Text Markup Language (TTML), previously referred to as Distribution Format Exchange Profile (DFXP), is an XML-based W3C standard for timed text in online media and was designed to be used for the purpose of authoring, transcoding or exchanging timed text information presently in use primarily for subtitling and captioning functions. TTML2, the second major revision of the language, was finalized on November 8, 2018. It has been adopted widely in the television industry, including by Society of Motion Picture and Television Engineers (SMPTE), European Broadcasting Union (EBU), ATSC, DVB, HbbTV and MPEG CMAF and several profiles and extensions for the language exist nowadays.

Bitmovin is a multimedia technology company which provides services that transcode digital video and audio to streaming formats using cloud computing, and streaming media players. Founded in 2013, the Austrian company contributes to MPEG-DASH, an open standard that allows streaming video to be played in HTML5 video and Flash players.

Nimble Streamer is a software media server developed by Softvelum. The server is used for streaming of live and on-demand video and audio to desktop computers, mobile devices, internet-connected TV sets, IPTV set-top boxes and other network-connected devices. Its first stable version 1.0.0-1 was released on October, 21st, 2013, with a number of preliminary versions done before that. The release cycle is intensive and introduces a new version every week or less. Nimble Streamer was the finalist in Streaming Media European Readers' Choice Awards for 2016 as the Best Streaming Innovation and for 2021 as Hardware/software Server.

References

  1. 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. eISSN   1945-788X. ISBN   1-4244-0367-7. ISSN   1945-7871. S2CID   9202042.
  2. 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. CiteSeerX   10.1.1.74.4838 . doi:10.1109/TMM.2007.898943. ISSN   1520-9210. S2CID   870854.
  3. "ABR Logic". GitHub .
  4. 1 2 "From Theory to Practice: Improving Bitrate Adaptation in the DASH Reference Player, by Spiteri, Sitaraman and Sparacio, ACM Multimedia Systems Conference, June 2018" (PDF).
  5. "dash.js JavaScript Reference Client Landing Page". reference.dashif.org. Retrieved 2020-08-28.
  6. 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. arXiv: 1601.06748 . doi:10.1109/TNET.2020.2996964. S2CID   219792107.
  7. 1 2 "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Archived from the original on 2012-08-20. Retrieved 2012-08-26.
  8. "MPEG-DASH vs. Apple HLS vs. Microsoft Smooth Streaming vs. Adobe HDS". 2015-03-29. Retrieved 3 June 2016.
  9. "ISO/IEC 23009-1:2012". ISO.
  10. 1 2 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)
  11. Open IPTV Forum Solution Specification Volume 2a – HTTP Adaptive Streaming V2.1 Archived 2011-10-09 at the Wayback Machine
  12. "DASH Industry Forum | Catalyzing the adoption of MPEG-DASH". dashif.org.
  13. "HbbTV Specification 1.5" (PDF). Archived from the original (PDF) on July 3, 2014.
  14. "Technologies | MPEG". mpeg.chiariglione.org.
  15. 3GPP Dynamic Adaptive Streaming over HTTP – Standards and Design Principles Archived 2016-08-05 at the Wayback Machine by T. Stockhammer
  16. "Towards Network-wide QoE Fairness using OpenFlow-assisted Adaptive Video Streaming". scholar.google.com.
  17. 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 . S2CID   67867085.
  18. "DASH over ICN/CCN | ITEC – Dynamic Adaptive Streaming over HTTP".
  19. "MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH" (PDF). Archived from the original (PDF) on August 7, 2015.
  20. "DASH Patent Portfolio License Briefing*" (PDF). MPEG LA . 2019-03-04. Retrieved 10 July 2019.
  21. "ExoPlayer". Android Developers. Retrieved 7 December 2021.
  22. Device Compatibility
  23. The Status of MPEG-DASH today, and why Youtube & Netflix use it in HTML5
  24. HTML5 Media Source Extensions
  25. "Video Player SDKs for flawless viewing | HTML5 Player". bitmovin.com. Archived from the original on July 3, 2015.
  26. "Encrypted Media Extensions". w3c.github.io.
  27. "This demo shows the Bitmovin Player displaying a 360° video with VR". bitmovin.com.
  28. 1 2 3 Vijayanagar, Krishna Rao (3 June 2021). "Top 13 HTML5 Video Players for the Web Reviewed [2021]". OTTVerse. Retrieved 7 December 2021.
  29. 1 2 3 "clappr dash.js hls.js rx-player shaka-player videojs-contrib-hls". npm trends.com. Retrieved 7 December 2021.
  30. 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. S2CID   237596948.
  31. Cimpanu, Catalin (2015-08-24). "Meet Shaka Player, Google's HTML5 Video Player for Low Bandwidth Conditions". Softpedia. Retrieved 2016-08-13.
  32. "Ultimate HTML5 Video-Player Showdown: 12 Players Compared". Cloudinary. 28 June 2020. Retrieved 7 December 2021.
  33. 1 2 3 DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
  34. "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" (PDF).
  35. "VLC 3.0 features".
  36. "HTTP Adaptive Streaming with GStreamer – coaxion.net – slomo's blog".
  37. libdash: Open-source DASH client library by bitmovin Gmbh
  38. "Video Player SDKs for flawless viewing | HTML5 Player". bitmovin.com.
  39. "Stream MPEG-DASH over HTTP with Wowza Streaming Engine". Wowza Media Systems.
  40. "DASH Streaming and Playlists".
  41. "MPEG-DASH streaming via Nimble Streamer - Softvelum". wmspanel.com.
  42. "Netview and Unified Streaming streaming DASH". Streaming Media Magazine.
  43. "USP Factsheet". Archived from the original on 2015-04-21. Retrieved 2015-04-17.
  44. Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows
  45. "Amazon Elastic Transcoder Now Supports MPEG-DASH". Amazon Web Services, Inc. Retrieved 2016-06-03.
  46. "MPEG-DASH and streaming reference and resources". 3 March 2016.
  47. "bitcodin.com Supported Formats". Archived from the original on 2016-03-28. Retrieved 2015-05-04.
  48. "Deliver HLS and MPEG-DASH with the Cloudinary Video Player | Cloudinary". cloudinary.com.
  49. "Engineering Broadcast: FM and Online". Insanity Radio Tech. 26 July 2017. Retrieved 7 December 2021.
  50. 1 2 "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" (PDF).
  51. 1 2 "Fragmentation, segmentation, splitting and interleaving · gpac/gpac Wiki". GitHub.
  52. "DashCast | GPAC".
  53. "Media Goom. Essential Adaptive Web Streaming with MPEG-DASH and HLS". Archived from the original on 2017-01-18.
  54. "Getting Started - Bento4". www.bento4.com.
  55. MPEG DASH Dataset Overview
  56. "Distributed DASH Datset | ITEC – Dynamic Adaptive Streaming over HTTP".
  57. "MPEG DASH Test Suite". Archived from the original on 2014-03-07. Retrieved 2013-11-22.
  58. "MPEG DASH Test Streams". BBC R&D. 9 September 2013.
  59. "The Complete Guide to Widevine". encoding.com. Retrieved 2018-01-11.
  60. "MPEG-DASH Analysis and Monitoring Solution". mividi.com. Retrieved 2019-09-15.
  61. "Simplified Adaptive Video Streaming: Announcing support for HLS and DASH in Windows 10". learn.microsoft.com. 29 January 2015.
  62. "Dynamic Adaptive Streaming over HTTP (MPEG-DASH) | Can I use... Support tables for HTML5, CSS3, etc". caniuse.com.
  63. "MPC-BE Version History - VideoHelp".
  64. "DASH Patent List" (PDF). MPEG LA . Retrieved 10 July 2019.