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 element | What it represents | Example |
|---|---|---|
| Period | A time span of the presentation | Main program or an ad break |
| Adaptation set | A group of interchangeable streams | All video renditions, or one audio language |
| Representation | One encoded version | 1080p at 6 Mbit/s |
| Segment | A short addressable chunk of media | Four seconds of video |
| Segment template | Rule for building segment URLs | Number- or time-based naming |
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.
| Parameter | Typical range | What it affects |
|---|---|---|
| Segment duration | 2 to 6 s | Adaptation speed versus request overhead |
| GOP alignment | Keyframe at every segment start | Clean switching between representations |
| Bitrate ladder | 5 to 10 renditions | Smoothness of quality steps |
| Minimum buffer time | 2 to 10 s | Startup delay and stall resistance |
| Live latency target | About 2 to 30 s | Delay behind the live event |
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.
| Protocol | Role | Transport | Manifest | Native playback |
|---|---|---|---|---|
| MPEG-DASH | Delivery to viewers | HTTP | XML (MPD) | Browsers via Media Source Extensions |
| HLS | Delivery to viewers | HTTP | Text playlist (M3U8) | Apple devices natively |
| RTMP | Ingest from encoder | TCP | None | Not used for modern playback |
| SRT | Contribution over networks | UDP with retransmission | None | Professional receivers |
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.
| Symptom | Likely cause | Fix |
|---|---|---|
| Visible glitch when quality changes | Unaligned keyframes | Force closed GOPs at segment boundaries |
| Live stream starts far behind | Large buffer or long segments | Shorter segments and a latency target |
| Player requests missing segments | Server and client clocks differ | Add a timing source to the MPD |
| Constant low quality | Ladder lacks mid-range steps | Redesign the bitrate ladder |
| Plays in one browser only | Codec not supported everywhere | Add a widely supported codec rendition |
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.