Stream Video Downloader logo
← Back to Blog

HLS vs. DASH: The Two Adaptive Streaming Protocols Explained

July 5, 2026 · 6 min read

Almost every video that adapts to your connection speed is delivered by one of two competing protocols: Apple's HLS (HTTP Live Streaming) or the vendor-neutral MPEG-DASH(Dynamic Adaptive Streaming over HTTP). They solve the exact same problem — chop a video into small chunks and describe them in a manifest so a player can switch quality on the fly — but they disagree on manifest format, segment format, and who gets to play them natively. If you've read how HLS streaming works, this is the same idea from the other side: what DASH does differently, and why a tool built to detect streaming video tends to care about one of these far more than the other.

Same idea, different manifest

Both protocols publish a manifest file that lists available quality variants and where to find their segments. HLS uses a plain-text .m3u8 playlist, an extension of the older M3U audio playlist format with HLS-specific tags bolted on. DASH uses a .mpd file(Media Presentation Description) — XML that describes the same variants, timing, and segment URLs in a more formal, machine-schema'd structure. A .m3u8 file is readable in a text editor at a glance; a .mpd file is a proper XML document with nested Period, AdaptationSet, and Representation elements doing roughly the job of HLS's #EXT-X-STREAM-INF lines.

Segment formats: .ts vs. fragmented MP4

Classic HLS segments are MPEG-2 Transport Stream (.ts) chunks, a broadcast-era container format Apple reused for the original 2009 spec. DASH was designed later, around fragmented MP4(fMP4) segments from the start. Modern HLS has largely converged on fMP4 too — Apple added support for it in 2016, and it's required for HEVC and for CMAF(Common Media Application Format), a container spec designed specifically so the same encoded segment files can be referenced by both a .m3u8 and a .mpd manifest. That convergence is why the format gap between HLS and DASH matters less at the byte level today than it did a decade ago — it's increasingly the manifest, not the segments, that differs.

Codec and DRM support

HLS historically expected H.264 video with AAC audio; HEVC (H.265) is supported since Apple moved to fMP4 segments, which matters for 4K and HDR delivery. DASH was codec-agnostic from day one and is commonly paired with VP9 or AV1 alongside H.264/HEVC, which is part of why it's the default choice for platforms that want to avoid H.264 licensing entirely. Encryption tracks a similar split: HLS pairs with Apple's own FairPlay Streaming DRM (or plain AES-128 for lighter protection, as covered in how HLS streaming works), while DASH is the usual delivery format for Widevine (Google) and PlayReady (Microsoft), typically via the shared Common Encryption (CENC) standard.

Where each one actually plays

This is the split that matters most in practice. Safari on macOS and iOS plays .m3u8natively — no JavaScript library required — and Apple's App Store review guidelines have long required apps that stream video over a certain length or bitrate to use HLS specifically. No mainstream browser plays .mpd natively; DASH always needs a JavaScript player such as dash.js or Shaka Player, the same way non-Safari browsers need hls.jsto play .m3u8. DASH's stronghold is Android and smart-TV platforms via Google's ExoPlayer, and it's the format YouTube and many Widevine-protected services build around.

Why this site is built around HLS

A .m3u8 playlist is a small text file with a predictable, regexable structure, which makes it realistic for a content script to spot a streaming URL on essentially any page just by pattern-matching requests. A .mpd manifest is XML with a different tag vocabulary and would need its own parser entirely — a separate detection and parsing path, not a small tweak to the existing one. Combined with how common HLS already is across social, news, and live-broadcast sites (much of it a direct consequence of Apple's own App Store requirements pushing HLS everywhere), that's why the extension's detector and the site's player and converter are built around .m3u8 specifically, the way the download guide describes. DASH support would be a genuinely separate feature, not a side effect of the current one.

FAQ

Is one protocol just newer or better than the other? Not really — they're contemporaries with different governance. HLS is Apple's format, standardized through an IETF informational RFC; DASH is a formal ISO/IEC MPEG standard with no single corporate owner. Neither has replaced the other; large platforms frequently ship both from the same CMAF-encoded source.

Can the same video be served as both?Yes — that's exactly what CMAF is for. A publisher encodes segments once and generates both a .m3u8 and a .mpd manifest pointing at the same underlying files, serving whichever one the requesting player expects.

Does the extension detect DASH streams at all? No — detection is scoped to .m3u8 URLs. If a site serves video exclusively as DASH, the extension won't currently pick it up.