MPEG-DASH

On this page 7

MPEG-DASH (Dynamic Adaptive Streaming over HTTP) is an international standard for adaptive bitrate streaming, published as ISO/IEC 23009-1, that delivers video over ordinary web servers by splitting it into short segments at several quality levels. In streaming and broadcasting, it lets the player switch between bitrates segment by segment as network conditions change, so playback continues smoothly instead of stalling.

Unlike HLS, which originated as a single vendor’s protocol, MPEG-DASH is codec-agnostic and was developed through an open standards process. It is widely used for on-demand and live video in browsers, smart TVs and set-top boxes, typically alongside HLS for full device coverage.

How MPEG-DASH delivers adaptive video

MPEG-DASH works by encoding the same content at several bitrates and resolutions, called representations, and cutting each one into segments of typically 2 to 6 seconds. A manifest file, the Media Presentation Description (MPD), lists every representation and tells the player where to find each segment.

The player downloads the MPD, measures throughput and buffer level, and requests each next segment from the representation that best fits current conditions. All logic sits in the client, while the server only answers standard HTTP GET requests, so ordinary web servers and content delivery networks can carry the stream.

The MPD uses a nested XML hierarchy, summarized in the following table.

MPD elementWhat it representsExample
PeriodA time span of the presentationMain program or an ad break
Adaptation setA group of interchangeable streamsAll video renditions, or one audio language
RepresentationOne encoded version1080p at 6 Mbit/s
SegmentA short addressable chunk of mediaFour seconds of video
Segment templateRule for building segment URLsNumber- or time-based naming
Structure of the media presentation description

Key parameters of a DASH stream

Several parameters decide whether a DASH stream starts quickly, adapts well and keeps latency low. The values below are common starting points that are tuned per service.

ParameterTypical rangeWhat it affects
Segment duration2 to 6 sAdaptation speed versus request overhead
GOP alignmentKeyframe at every segment startClean switching between representations
Bitrate ladder5 to 10 renditionsSmoothness of quality steps
Minimum buffer time2 to 10 sStartup delay and stall resistance
Live latency targetAbout 2 to 30 sDelay behind the live event
Typical MPEG-DASH settings and their effects

Segment boundaries must align across all representations, with a keyframe at the start of every segment, otherwise the player cannot switch cleanly. Most services package video in fragmented MP4 (fMP4) using the CMAF format, which allows the same media segments to serve both DASH and HLS.

MPEG-DASH compared with HLS and push protocols

MPEG-DASH and HLS solve the same last-mile delivery problem with very similar mechanisms, while protocols such as RTMP and SRT are mainly used to contribute a live feed from an encoder to a server rather than to deliver it to viewers.

ProtocolRoleTransportManifestNative playback
MPEG-DASHDelivery to viewersHTTPXML (MPD)Browsers via Media Source Extensions
HLSDelivery to viewersHTTPText playlist (M3U8)Apple devices natively
RTMPIngest from encoderTCPNoneNot used for modern playback
SRTContribution over networksUDP with retransmissionNoneProfessional receivers
How MPEG-DASH relates to other streaming protocols

A frequent practical point is that Apple devices do not play DASH natively in their default browser, so services needing universal reach usually package both formats. CMAF reduces the cost of this, because one set of media segments can be referenced by both an MPD and an HLS playlist.

Live streaming, DRM and advertising

For live video, the MPD is marked dynamic and updated as new segments appear, and the player calculates which segment is current from the availability start time. Low-latency DASH uses chunked transfer encoding of CMAF chunks so that the player can start downloading a segment before it is complete.

Content protection uses Common Encryption (CENC), which lets one encrypted file work with several DRM systems such as Widevine and PlayReady. Ad insertion relies on multiple periods in the MPD, so an ad break becomes its own period with its own timeline.

Common pitfalls in MPEG-DASH deployments

Most playback problems in DASH come from packaging and timing errors rather than from the standard itself. The table lists frequent symptoms with their causes.

SymptomLikely causeFix
Visible glitch when quality changesUnaligned keyframesForce closed GOPs at segment boundaries
Live stream starts far behindLarge buffer or long segmentsShorter segments and a latency target
Player requests missing segmentsServer and client clocks differAdd a timing source to the MPD
Constant low qualityLadder lacks mid-range stepsRedesign the bitrate ladder
Plays in one browser onlyCodec not supported everywhereAdd a widely supported codec rendition
Frequent DASH problems and fixes

A plain-language summary

MPEG-DASH is a way of sending video over the internet in small pieces, each available in several qualities. The video player picks the best quality the connection can handle for each piece.

If the internet slows down, the next pieces come in a lower quality instead of the video freezing. When the connection recovers, the quality climbs back up. The viewer keeps watching without interruption, which is why most online video uses this approach or one very similar to it.

An example from practice

A regional broadcaster streams a football match online. Its live encoder produces six renditions from 416×234 at 300 kbit/s up to 1920×1080 at 6 Mbit/s, all with keyframes every two seconds. A packager cuts them into two-second CMAF segments, writes a dynamic MPD and an HLS playlist, and encrypts the media once with Common Encryption.

A viewer on a train starts at the 1080p rendition, drops to 540p while passing through a tunnel and returns to full quality a minute later, all without a single stall. Smart TV and browser viewers use the MPD, Apple device viewers use the HLS playlist, and the content delivery network caches the same segment files for both, which keeps storage and bandwidth costs down.