DASH (MPEG-DASH)
The open, standards-based sibling of HLS — adaptive streaming built for any codec, and the usual choice for DRM-protected premium video.
DASH (MPEG-DASH) is an open ISO standard for adaptive streaming that chops video into segments described by an XML .mpd manifest, letting a player switch quality to match each viewer's bandwidth.
What is DASH (MPEG-DASH)?
DASH — Dynamic Adaptive Streaming over HTTP, often called MPEG-DASH — is an open adaptive bitrateAdaptive Bitrate (ABR)Automatically adjusts video quality in real time to match each viewer’s connection speed — smooth playback from 480p to 4K with no buffering.Open definition → streaming standard published by MPEG as an international ISO specification. Like HLSHLS (HTTP Live Streaming)Apple’s adaptive streaming protocol. Uses .m3u8 manifests and segmented delivery; supported on every browser, device and smart TV.Open definition →, it splits video into short segments at several quality levels and lets the player switch between them based on bandwidth.
Its defining trait is that it is codecCodecThe algorithm that compresses and decompresses video — H.264, H.265 (HEVC) and AV1 are the most common in modern streaming.Open definition →-agnostic and vendor-neutral: DASH does not mandate a particular video codec, and because it is an open standard rather than one company's protocol, it is widely implemented across browsers and devices — with one notable exception, Apple's Safari, which is built around HLS.
How DASH works
The source is transcodedTranscodingRe-encoding a source video into multiple resolutions and bitrates so a player can switch between quality levels on the fly.Open definition → into a rendition ladder and packaged as fragmented MP4 (fMP4) segments — the same media HLS can now use.
A manifestManifestA small index file (.m3u8 or .mpd) that lists every available rendition and segment so the player knows what it can request.Open definition → called an MPD (Media Presentation Description), written in XML, lists every rendition, segment and timing detail. The player reads it first.
Through Media Source Extensions, a player such as dash.js measures throughput and requests the best-fitting rendition segment by segment.
DASH pairs with Common Encryption (CENC), so a single encrypted file works with multiple DRMDRMEncryption of the video file plus a licence server that issues a per-session key — so a downloaded copy stays unplayable.Open definition → systems — the reason it dominates protected content.
Inside an .mpd manifest
A DASH manifest is a nested XML tree. Understanding the levels explains how the player finds what to play:
| Level | What it represents |
|---|---|
| Period | A section of the presentation (e.g. an ad break vs the main content) |
| AdaptationSet | One media type — a set for video, one per audio or subtitle track |
| Representation | An individual quality rendition (its bitrateBitrateThe amount of data used per second of video. Higher bitrate means more detail and a larger file; the core lever behind streaming quality.Open definition →, resolution, codec) |
| Segments | The actual media chunks and their timing |
The player picks a Representation that fits current bandwidth and pulls its segments — switching to another Representation whenever conditions change.
DASH vs. HLS
| Aspect | DASH | HLS |
|---|---|---|
| Standard | Open ISO (MPEG) | Apple |
| Manifest | .mpd (XML) | .m3u8 (text) |
| Codec | Agnostic | Historically H.264/H.265 |
| Native on Apple | No | Yes |
| DRM | Widevine / PlayReady (CENC) | FairPlay |
| Best for | DRM-heavy premium content | Universal default delivery |
Further reading
- MPEG-DASH — Wikipedia — a vendor-neutral overview.
