Dynamic adaptive streaming over HTTP (DASH) White Paper
Rajeev Tiwari Principal Software Engineer at Technicolor
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
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.
For a deeper background on MPEG DASH, I recommend you read the overview from the DASH Industry
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
Source : http://dashif.org/about-dash-industry-forum/
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
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
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.
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
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 Media Presentation Description elements and attributes
Element or Attribute Name
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
Must be 'true'
Shall be present
Shall be present
Shall be present
Industry wide Support for MPEG-DASH:
Overwhelm response for the MPEG-DASH from industry. People from all across are deploying and
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
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
Source : http://gpac.wp.mines-telecom.fr/2012/08/23/mpeg-dash-support-in-google-chrome/
Source : http://dash-mse-test.appspot.com/