Dynamic adaptive streaming over HTTP (DASH) White Paper
Rajeev Tiwari Principal Software Engineer at Technicolor
DASH Over...
For a deeper background on MPEG DASH, I recommend you read the overview from the DASH Industry
Forum here1.

Figure 1.
To play the content, the DASH client first obtains the MPD. The MPD can be delivered using HTTP, email,
thumb dr...
to different bitrate streams according to network conditions are performed by the client (again,
similar to the other adap...
Media Presentation Description: Representation Base Type
Table lists the MPD elements and attributes that must be supported for compliance to this profile.3
Table — Supported Medi...

Shall be present

Industry wide Support for MPEG-DA...
MPEG DASH White Paper
MPEG DASH White Paper
Upcoming SlideShare
Loading in …5

MPEG DASH White Paper


Published on

MPEG-DASH, White Paper

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

MPEG DASH White Paper

  1. 1. Dynamic adaptive streaming over HTTP (DASH) White Paper Rajeev Tiwari Principal Software Engineer at Technicolor DASH Overview For past number of years, it was quite difficult to stream live video to a mobile device. Lack of network infrastructure support, bandwidth variability, unified firewall configurations and all created major hurdle’s to live streaming. Earlier, more traditional streaming protocols, designed for small packet formats and managed delivery networks, were anything but firewall-friendly. 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 has evolved as a first International standard for HTTP-based streaming. HTTP streaming has become a dominant approach in commercial deployments. For instance, streaming platforms such as Apple’s HTTP Live Streaming (HLS), Microsoft’s Smooth Streaming (SS), and Adobe’s HTTP Dynamic Streaming (HDS) all use HTTP streaming as their underlying delivery method. However, each implementation uses different manifest and segment formats and therefore, to receive the content from each server, a device must support its corresponding proprietary client protocol. A standard for HTTP streaming of multimedia content would allow a standard-based client to stream content from any standard-based server, thereby enabling interoperability between servers and clients of different vendors. In-order to overcome above restrictions for end user MPEG developed the specification with participation from many experts and with collaboration from other standard groups, such as the Third Generation Partnership Project (3GPP). The resulting standard is known as MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) which resolves the dependency on specific protocol and works independent on platform protocol. DASH is a universal delivery format that provides end users with the best possible video experience by dynamically adapting to changing network conditions. It is technically similar to protocols like SS and HLS in the sense that it provides a manifest definition for the description of multiple bitrates of video and audio available to a client player application. It is then up to the client player to make decisions at run-time about various factors such as network bandwidth, CPU utilization, screen dimensions, etc… to adjust the streaming experience for each viewer. The big differentiator with DASH is that it is an international standard that is now controlled by a standards body – the Motion Picture Experts Group (MPEG) – instead of being controlled by Microsoft (Smooth Streaming) or Apple (HLS). Several companies participated in the creation and standardization efforts around MPEG DASH, including Microsoft, Apple, Netflix, Qualcomm, Ericsson, Samsung, and many more.
  2. 2. For a deeper background on MPEG DASH, I recommend you read the overview from the DASH Industry Forum here1. MPEG-DASH Highlighted Features: • Internet friendly. MPEG-DASH uses standard HTTP protocol. It can be deployed using standard web servers and it work with existing Internet infrastructures, including CDNs, caches, firewalls and NATs. • Multiple segment formats (ISO BMFF and MPEG-2 TS) , Codec independence • On-demand, live and time-shift applications. MPEG-DASH supports on-demand, live and time-shift applications and services with a single framework. • Switching and selectable streams. The MPD provides adequate information to the client for selecting and switching between streams, for example, selecting one audio stream from different languages, selecting video between different camera angles, selecting the subtitles from provided languages, and dynamically switching between different bitrates of the same video camera. • Ad insertion. Advertisements can be inserted as a period between periods or segment between segments in both on-demand and live cases. • Compact manifest. The segments’ address URLs can be signaled using a template scheme resulting in a compact MPD. • Fragmented manifest. The MPD can be divided into multiple parts or some of its elements can be externally referenced, enabling downloading MPD in multiple steps. • Common Encryption and Multiple DRM support. The content can be encrypted once and delivered to client supporting various DRM schemes. The supported DRM schemes can be signaled in MPD. • Segments with variable durations. The duration of segments can be varied. With live streaming, the duration of the next segment can also be signaled with the delivery of the current segment. • Multiple base URLs. The same content can be available at multiple URLs—that is, at different servers or CDNs—and the client can stream from any of them to maximize the available network bandwidth. • Clock-drift control for live sessions. The UTC time can be included with each segment to enable the client to control its clock drift. Figure 1 illustrates a simple streaming scenario between an HTTP server and a DASH client. In this figure, the multimedia content is captured and stored on an HTTP server and is delivered using HTTP. The content exists on the server in two parts: Media Presentation Description (MPD), which describes a manifest of the available content, its various alternatives, their URL addresses, and other characteristics; and segments, which contain the actual multimedia bit streams in the form of chunks, in single or multiple files. 1 Source : http://dashif.org/about-dash-industry-forum/
  3. 3. Figure 1. To play the content, the DASH client first obtains the MPD. The MPD can be delivered using HTTP, email, thumb drive, broadcast, or other transports. By parsing the MPD, the DASH client learns about the program timing, media-content availability, media types, resolutions, minimum and maximum bandwidths, and the existence of various encoded alternatives of multimedia components, accessibility features and required digital rights management (DRM), media-component locations on the network, and other content characteristics. Using this information, the DASH client selects the appropriate encoded alternative and starts streaming the content by fetching the segments using HTTP GET requests. After appropriate buffering to allow for network throughput variations, the client continues fetching the subsequent segments and also monitors the network bandwidth fluctuations. Depending on its measurements, the client decides how to adapt to the available bandwidth by fetching segments of different alternatives (with lower or higher bitrates) to maintain an adequate buffer.2 The MPEG-DASH specification only defines the MPD and the segment formats. The delivery of the MPD and the media-encoding formats containing the segments, as well as the client behavior for fetching, adaptation heuristics, and playing content, are outside of MPEG-DASH’s scope. The name of this recommendation is “DASH-AVC/264 Implementation Guidelines” and you can download it from here.2 Media Presentation Description (MPD) – Definition and Overview: MPEG-DASH works nearly the same way as the three other major adaptive streaming protocols. DASH presents available stream content to the media player in a manifest (or index) file – called the Media Presentation Description (MPD) – and then supports HTTP download of media segments. The MPD is analogous to an HLS m3u8 file, a Smooth Streaming Manifest file or an HDS f4m file. After the MPD is delivered to the client, the content – whether it’s video, audio, subtitles or other data – is downloaded to clients over HTTP as a sequence of files that is played back contiguously and switching 2 Source: http://dashif.org
  4. 4. to different bitrate streams according to network conditions are performed by the client (again, similar to the other adaptive streaming protocols). Media content is composed of single or multiple contiguous segments. The MPD provides sufficient infor mation for a DASH client to provide a streaming service to the user by requesting segments from an HTT P web server and de-multiplexing, decoding and rendering the included media streams. The segment formats specify the formats of the entity body of the HTTP respo nse to an HTTP GET request or a partial HTTP GET with the indicated byte range using HTTP/1.1 to a reso urce identified in the MPD. DASH reuses the segment formats defined in ISO/IEC 1449612 [ISOFF] and ISO/IEC 13818-1. Supported Profiles: MPEG DASH defines and allows for the creation of various profiles. A profile is a set of restrictions of media formats, codecs, protection formats, bitrates, resolutions, and other aspects of the content. For example, the DASH spec defines a profile for ISO BMFF basic on-demand. Content Descriptors for Protection, Accessibility, Content Rating: MPEG DASH offers a flexible set of descriptors for the media content that is being streamed. Profiles of DASH are defined so as to enable interoperability and the signalling of the use of features etc. A profile has an identifier and refers to a set of specific restrictions. Those restrictions might be on features of the media presentation description (MPD) document, usage of the network, media format(s), codec(s) used, protection formats, or on quantitative measures such as bit-rates, segment lengths, screen size, and so on. Profiles defined in this part of ISO/IEC 23001 define restrictions on features of this part of ISO/IEC 23001 only (e.g. not codec types). Externally defined profiles may additionally impose restrictions on other aspects of media delivery. A profile is a claim and a permission; it claims that the media presentation (MPD document and segment formats) conforms to the profile, and gives permission to a reader that implements that profile to read the media presentation, interpret what it recognizes, and ignore the material it does not understand. The profiles with which an MPD complies are indicated in the MPD@profiles attribute. This element is a space-delimited list of profile identifiers each of which is a URI. Profile identifiers defined in this specification are URNs conforming to RFC 3406. URLs may also be used. When a URL is used, it should also contain a month-date in the form mmyyyy; the assignment of the URL must have been authorized by the owner of the domain name in that URL on or very close to that date, to avoid problems when domain names change ownership. ISO Base media file format basic on-demand profile The basic on-demand profile is identified by the URN “urn:mpeg:mpegB:profile:dash:isoff-basic-ondemand” and makes use of the following features: • Single period per media presentation • ISO Base Media File Format segments • Self-initializing indexed media segments (i.e. one segment per representation). • Sub segment alignment is required • Un-multiplexed streams • Url diversity using the BaseURL element • Content Protection and accessibility annotations
  5. 5. Media Presentation Description: Representation Base Type
  6. 6. Table lists the MPD elements and attributes that must be supported for compliance to this profile.3 Table — Supported Media Presentation Description elements and attributes Element or Attribute Name MPD @type @mediaPresentationDuration @minBufferTime BaseURL ProgramInformation Period Group ContentProtection @schemeIdUri SchemeInformation Accessibility @schemeIdUri SchemeInformation Viewpoint @schemeIdUri SchemeInformation Rating @schemeIdUri SchemeInformation @width @height @parx @pary @lang @mimeType Special requirements (if any) Shall be “OnDemand” Shall be present Shall be present At most one shall be present One or more shall be present Shall be present and shall indicate a single media type @frameRate @numberOfChannels @samplingRate @subsegmentAlignmentFlag Representation ContentProtection @schemeIdUri SchemeInformation @width @height @parx @pary @lang @frameRate @id @bandwidth @dependencyId @numberOfChannels 3 Source: http://dl.dropbox.com/u/1346434/ISO-IEC_23001-6-DIS.doc Must be 'true' Shall be present Shall be present
  7. 7. @samplingRate TrickModeType @alternatePlayoutRate SegmentInfo BaseURL Shall be present Industry wide Support for MPEG-DASH: Overwhelm response for the MPEG-DASH from industry. People from all across are deploying and supporting mpeg-dash. 1. Internet Explorer 11, Google Chrome, Adobe and Mozilla etc. to support MPEG Dash.4 5 6 2. MPEG-DASH Support in YouTube.7 8 3. DASH at ITEC VLC PLUGIN9 4. Adobe, Microsoft, Qualcomm, Others Support MPEG-DASH10 MEDIA PLAYERS THAT SUPPORTS MPEG-DASH: 1. VLC dash plugin 2. MP4Client as part of the GPAC project.11 3. Qt Player as part of libdash project.12 CONCLUSION: MPEG DASH has been published by the ISO, it seems well on its way to becoming a solid, broadly accepted standard for the streaming media market. Three years in the making, DASH is poised to provide a universal platform for delivering streaming media content to multiple screens. Designed to be very flexible in nature, it promises to enable the re-use of existing technologies (containers, codecs, DRM, etc.), seamless switching between protocols, and perhaps most importantly, a highquality experience for end users. Furthermore, most of the tech industry’s major players have already lined up firmly behind DASH. The list of prominent supporters includes Akamai, Dolby, Samsung, Thomson, Netflix and, most notably, such leading streaming media providers as Microsoft and Adobe. Apple stands out as one of the few major tech players just started taking interest in the standard. So there’s a great deal of hope in the industry that MPEG DASH could actually bring in the entire major players and realize its full market potential. For one thing, Apple, Adobe and Microsoft must throw their full weight behind the standard and agree to make the switch from their proprietary HLS protocols in the future despite some clear competitive disadvantages of doing so. 4 Source: http://www.engadget.com/2013/06/26/internet-explorer-11-to-support-webgl-and-mpegdash/?utm_medium=feed&utm_source=Feed_Classic&utm_campaign=Engadget 5 Source: http://blogs.adobe.com/ktowes/2012/02/adobe-announces-support-for-mpeg-dash-streamingstandard.html 6 Source : http://gpac.wp.mines-telecom.fr/2012/08/23/mpeg-dash-support-in-google-chrome/ 7 Source : http://dash-mse-test.appspot.com/ 8 Source: http://streamingcodecs.blogspot.com/2013/01/mpeg-dash-support-in-youtube.html 9 Source: http://www-itec.uni-klu.ac.at/dash/ 10 Source: http://www.beet.tv/2013/04/mpeg-dash.html 11 Source: http://gpac.wp.mines-telecom.fr/ 12 Source: http://www.bitmovin.net/libdash/