HLS vs. DASH

HLS vs. DASH

HLS vs. DASH

HLS and DASH are the two dominant protocols for delivering video to end users over the internet. Both are HTTP-based and use adaptive bitrate streaming, but they were built by different organizations with different priorities. Those differences have real consequences for device compatibility, codec support, DRM, and latency. 

    New call-to-action

What Is HLS?

HLS stands for HTTP Live Streaming, HTTP being the same language that composes most of the internet. Apple originally developed HLS to enable iPhone users to watch live streams but it is now one of the most common and widely supported protocols for transporting video data from media servers to a multitude of devices.  

Because HLS uses HTTP, any typical Content Delivery Network (CDN) will suffice for distributing content instead of requiring specialized infrastructure. HLS works by segmenting video into fragments instead of delivering a continuous stream. Apple initially recommended broadcasters use 10-second segments but reduced this number to six after 2016 to minimize latency.  

Other perks of HLS include: 

And more. Almost every kind of app and device supports HLS streaming, including Microsoft, Android, Windows, Smart TVs, and Linux products, not just Apple. 

 
   

What Is DASH?

DASH’s full name is MPEG-DASH. MPEG, the Moving Pictures Expert Group, created DASH — Dynamic Adaptive Streaming over HTTP — specifically to be an industry-standard protocol back when Apple HLS was competing with many others. However, Apple’s prominence in the tech world has launched HLS to near-ubiquity, so DASH isn’t quite the unifying protocol MPEG intended for it to be — but it’s still a viable alternative that has its place in the market.  

DASH is also HTTP-based, so it works similarly to HLS from a technical standpoint. It delivers video and audio data in chunks less than 10 seconds long (DASH is known to use shorter chunks than HLS, around two to four seconds) to optimize accuracy, avoiding skips and buffering during playback.  

DASH is also open source, meaning it’s not a proprietary protocol and anyone can access and modify it as they see fit. DASH is supported across Android, Chrome, and Firefox, as well as Samsung, Panasonic, Philips, and Sony devices, among others. Notably, iOS and Apple TV do not support DASH natively.

 
   

HLS vs. DASH: How They’re Similar

One of the most significant ways HLS and DASH are similar is their usefulness in adaptive bitrate streaming. 

If you’re unfamiliar, adaptive bitrate streaming (ABR) is the practice of delivering media data that adapts to the quality of an end user’s internet connection. A server or video platform ingests a single video source and transcodes it into multiple renditions that differ in size. Viewers with fast connections receive higher-quality renditions, while those on slower connections receive lower ones automatically, minimizing buffering. 

Both DASH and HLS are viable for adaptive bitrate streaming. The stream quality they provide is not remarkably different, and they both support High Dynamic Range (HDR) for enhanced color renditions. Both protocols are reliable and deliver stable viewing experiences across live and on-demand workflows. 

 

HLS vs. DASH: How They’re Different

Now, for the differences between HLS vs. DASH. They’re pretty easy to work with, technically speaking; it’s the branding and compatibility that make the most significant differences. 

HLS is, obviously, Apple-backed, so Apple devices prioritize it. Due to how popular Apple products are, you’ll definitely want to use HLS when streaming content to reach a significant portion of your audience. iPhones and Apple TVs only support HLS, and there is no browser-level workaround for DASH on these devices. 

However, there are still a few technical differences you’ll want to be aware of.  

 

At A Glance: HLS vs. DASH

Apple HLS MPEG-DASH 
Playback Compatibility 
 
Almost all devices, apps, and browsers Standard HLS: 15-30 seconds (6-second chunks)

Tuned HLS: 5-8 seconds (1-2 second chunks

Low-Latency HLS: 2-4 seconds
Transport Protocol TCP TCP
Compatible Codecs Video: H.264, H.265  
Audio: AAC-LC, HE-AAC+ v1 & v2, xHE-AAC, Apple Lossless, FLAC 
Codec agnostic for both audio and video 
Container Formats Has traditionally used MPEG-2 or MPEG-TS Has traditionally used MP4/.mp4 
Latency Standard HLS: 15-30 seconds (6 second chunks)

Tuned HLS: 5-8 seconds (1-2 second chunks

Low-Latency HLS: 2-4 seconds
Standard DASH: 10-20 seconds (2-4 second chunks)

Tuned DASH: 5-8 seconds (1-2 second chunks)

Low-Latency DASH: 2-3 seconds
Developer HLS is Apple’s proprietary protocol MPEG created DASH to be open source 
Security Supports Common Encryption (CENC) and fmp4 
 
Also uses Apple Fairplay for DRM and encryption 
Supports Common Encryption (CENC) and fmp4 
 
Uses PlayReady from Microsoft and Google Widevine for DRM 
Advertising Supports ad insertion with VPAID and VAST Supports ad insertion with VPAID and VAST 
 

You’ll notice that both HLS and DASH offer different solutions for low latency. Apple released specs for its Apple Low-Latency HLS (LL-HLS) extension, which is now incorporated into HLS’s feature set. LL-HLS brings its latency down to sub-three seconds, close to two. MPEG-DASH’s recommended segments were always smaller, so it used to perform better in terms of latency until LL-HLS came along.  DASH has its own low-latency specs known as LL-DASH. Both LL-HLS and LL-DASH benefit from CMAF packaging, which is covered in detail below

You’ll also notice that DASH is codec agnostic. HLS requires you to use either H.264 or H.265 video codecs, but DASH is more versatile. It supports codecs like VP9 and AV1, which can deliver 30-50% better compression than H.264 at equivalent quality. 

 

How Do Platforms like Netflix and Twitch use HLS and DASH?

Netflix uses a DASH-based delivery architecture, but it is not fully DASH-compliant in the standard sense. Netflix operates as a “walled garden” implementation derived from DASH, but it uses proprietary extensions that are not interoperable with a standard DASH player. A general-purpose DASH player cannot play a Netflix stream.

Twitch built its own low-latency variant of HLS before Apple released the official Low-Latency HLS specification. It is common for large platforms to develop proprietary optimizations on top of open or semi-open protocols that solve specific performance problems at their scale.

DASH’s codec-agnostic architecture allows platforms to deliver VP9 and AV1-encoded streams, which achieve significantly better compression than the H.264 and H.265 codecs that HLS supports. By using DASH where the player supports it, streaming providers can reduce bandwidth costs while maintaining visual quality.

Can Tuned HLS and DASH Achieve Reliable Low Latency Streaming?

Tuning standard HLS segment sizes can produce strong latency results for high-scale live events, without requiring the added complexity of LL-HLS infrastructure. Large-scale content providers and sports events producers often use one-second HLS chunks to achieve latency close to broadcast television.

The common thread across these examples is that protocol choice is rarely made in isolation. It is driven by a combination of target device requirements, codec strategy, latency goals, and the degree of control the platform has over its player ecosystem. In many cases, the answer is not HLS or DASH, but both, served from a shared infrastructure layer.

CMAF: Serving HLS & DASH From A Single Encode

The imperative question revolves around whether supporting HLS and DASH requires doubling the encoding and storage infrastructure. With CMAF, the answer is no.

How CMAF Solves Encoding Challenges While Optimizing Costs

CMAF (Common Media Application Format) defines a standardized segment format based on fragmented MP4. If HLS and DASH both use the same underlying segment format, a streaming platform can encode and package video once and serve it with two different manifests. An .m3u8 manifest serves HLS clients. An .mpd manifest serves DASH clients. Both reference the same set of encoded segments.

Before CMAF, supporting both protocols required separate packaging pipelines. With CMAF, a single encode-and-package pipeline that outputs CMAF/fMP4 segments along with both an .m3u8 and an .mpd manifest drastically simplifies the workflow. Today, CMAF is the standard approach at the majority of large-scale OTT services.

How CMAF Benefits HLS and DASH

LL-HLS and LL-DASH can share the same chunked CMAF segments, so a single packaging pipeline supports low-latency delivery across both protocols without separate low-latency infrastructure for each. CMAF also enables a cleaner approach to multi-DRM. Because the segment format is shared, encryption can be applied once using Common Encryption (CENC). Then, the appropriate DRM license is negotiated at the player level rather than requiring separate encrypted segment sets per DRM system.

CMAF also ensures that timed metadata, including ID3 tags used for ad insertion, analytics events, and interactive overlays, also works across both protocols. The metadata is injected into CMAF fragment headers (via eMessage boxes), and both HLS and DASH players can read it from the same segments. The mechanism differs slightly between the two protocols, but the data format and payload are identical.

For streaming operators evaluating HLS vs. DASH, CMAF means the decision is no longer either/or at the infrastructure level. Wowza Streaming Engine supports CMAF-based output, enabling operators to serve HLS and DASH workflows.

HLS vs DASH: Device and Browser Compatibility

Device compatibility is the dimension where HLS and DASH diverge most sharply, and it is often the factor that resolves the protocol decision for a given project.

PlatformHLSDASH
iOS / iPadOS (Safari, native apps)NativeNot supported
macOS SafariNativeNot supported natively
Android (Chrome, native apps)Supported via hls.js or ExoPlayerSupported in browser
Windows ChromeSupported via hls.jsSupported via dash.js or Shaka Player
Windows FirefoxSupported via hls.jsSupported via dash.js or Shaka Player
Windows EdgeSupported via hls.jsSupported via dash.js or Shaka Player
Apple TV / tvOSNativeNot supported
RokuSupportedPartial
Amazon Fire TVSupportedPartial
Samsung Smart TV (Tizen)SupportedSupported
LG Smart TV (webOS)SupportedSupported

No JavaScript player library can play DASH in any browser on an iPhone or iPad. That includes Chrome for iOS, which runs on Apple’s WebKit engine under the hood. This is not a limitation that can be engineered around with a different player implementation. On desktop and Android, neither protocol has fully native support in every browser. For HLS on non-Safari browsers, hls.js is the standard library. For DASH, dash.js (the DASH Industry Forum’s reference implementation) and Shaka Player (Google’s open-source option that supports both HLS and DASH) are the most common commercial players.

One practical implication is if a streaming application needs to reach Apple device users, which includes a significant share of viewers in the US, UK, Australia, and Japan. In these situations, HLS must be supported. There is no browser-level workaround for DASH on iOS. This is why most production streaming systems either default to HLS or serve both protocols via CMAF.

Decision Guide: Should I Use HLS or DASH?

The right protocol depends on the specific constraints of the streaming workflow. If the target audience includes Apple device users, HLS is non-negotiable. If the application requires codecs that HLS does not support, DASH is necessary for those endpoints. In most cases where both constraints apply, CMAF resolves the conflict by serving both protocols from a single pipeline.

ScenarioRecommended Approach
iOS app or cross-platform mobileHLS (required for Apple)
Global OTT platform targeting all devicesCMAF (HLS + DASH)
VOD platform targeting desktop, Smart TVs, or Android devicesDASH
Live sports or large-scale live eventsLL-HLS or LL-DASH (via CMAF)
4K streaming with next-gen codecsDASH (or CMAF with DASH output)
Enterprise or internal video distributionHLS
DRM-protected content across all platformsCMAF (HLS + DASH) with multi-DRM
Sub-second interactive latency (auctions, gaming, real-time Q&A)WebRTC

HLS and DASH are not going away in the near term. For high-scale events where reliability is paramount, these protocols remain the proven choice. The cost advantages of stateless, CDN-cached, HTTP-based delivery are difficult to match with session-based alternatives. Wowza Streaming Engine supports both HLS and DASH output from a single ingest stream. Operators do not need to commit to one protocol at the infrastructure level.

What’s Ahead for HLS and DASH

There has been development around a JSON-based manifest format for DASH. Today, DASH manifests are XML documents (.mpd files), which are more verbose and less developer-friendly to parse and debug than the plain-text .m3u8 playlists used by HLS. A JSON manifest would narrow this gap and make DASH more accessible to web developers who are accustomed to working with JSON-based data structures.

For high-scale live events, sports broadcasts, and the majority of OTT delivery, HLS and DASH will remain the dominant protocols. Their stateless, HTTP-based, CDN-friendly architecture is proven at scale, and no emerging protocol has yet matched that combination of reliability, scalability, and ecosystem support.

Wowza HLS vs. DASH

The primary differences between HLS and DASH come down to device compatibility, codec flexibility, and ecosystem control (check out this tutorial for streaming with HLS). Wowza Streaming Engine handles this natively, transcoding a single ingest stream into both HLS and DSH output for delivery to any device, anywhere. Get in touch with one of our experts if you would like to explore this further.

 

Frequently Asked Questions

Which is better, HLS or DASH?

For a live event with a global audience, HLS is better because it reaches every device, including Apple products, browsers, mobile devices, and set-top boxes. If latency is a priority, both LL-HLS and LL-DASH deliver comparable performance in the 3-5 second range. If the audience is entirely on non-Apple platforms and codec efficiency matters, DASH has advantages. For most production live streaming, the recommended approach is CMAF, which serves both HLS and DASH from a single encode.

Does Netflix use DASH or HLS?

Netflix uses a DASH-based delivery architecture, but its implementation is proprietary and not interoperable with standard DASH players. In other words, a general-purpose DASH player cannot play a Netflix stream. Netflix maintains this approach because it controls both sides of its streaming ecosystem, from encoding to the player applications, on every supported device.

Does Twitch use DASH or HLS?

Twitch uses HLS to deliver live streams to viewers, it does not use DASH. Streamers send their video to Twitch using RTMP as the ingest protocol, and Twitch then transcodes and distributes the stream to viewers over HLS. Twitch developed its own low-latency variant of HLS to minimize delay before Apple released the official LL-HLS specification.

How does DASH streaming work?

DASH (Dynamic Adaptive Streaming over HTTP) packages multiple video quality renditions into an adaptive bitrate (ABR) ladder. It segments each rendition into short chunks, typically 2-4 seconds long. A manifest file in XML format (.mpd) describes all available renditions, segment URLs, timing information, and DRM metadata. The player downloads and parses the manifest, selects a rendition based on the viewer’s network conditions, and fetches segments over standard HTTP. If bandwidth changes, the player switches to the best possible rendition the network can handle. DASH is codec-agnostic, meaning it can deliver video encoded with H.264, H.265, VP9, AV1, or any other codec the player supports without specialized infrastructure.

Is M3U8 HLS or DASH?

M3U8 is the playlist format used by HLS, not DASH. An .m3u8 file is a plain-text manifest that lists the URLs of video segments, their durations, and metadata such as encryption keys and rendition details. DASH uses a different manifest format, .mpd (Media Presentation Description), which is XML-based. If a streaming workflow produces .m3u8 files, it is using HLS. HLS also uses .ts segments, while DASH uses .mp4 segments.

What is the main difference between HLS and DASH?

HLS works natively on Apple devices, but DASH does not. DASH can play in an application on iOS, but not in a browser. HLS (HTTP Live Streaming) was developed by Apple and is supported natively on iOS, macOS, and Safari. DASH (Dynamic Adaptive Streaming over HTTP) is an open international standard with broader codec support but no native playback on Apple devices. Both are HTTP-based adaptive bitrate streaming protocols that segment video for delivery over standard CDN infrastructure.

Does DASH work on iPhone?

DASH does not work natively on iPhone. No JavaScript player library can play DASH in any browser on an iPhone or iPad. This includes Chrome for iOS, which runs on Apple’s WebKit engine. There is no browser-level workaround. Any website that needs to reach iPhone and iPad users must support HLS. The only way for DASH to work on iPhone is through a custom application.

What is CMAF and how does it relate to HLS and DASH?

CMAF (Common Media Application Format) is a packaging standard that defines a shared segment format based on fragmented MP4. Video is encoded and packaged once, and both an HLS manifest (.m3u8) and a DASH manifest (.mpd) are generated from the same set of segments. CMAF is now the standard approach at most major streaming platforms and is supported by Wowza Streaming Engine.

What latency can I expect from HLS vs. DASH?

Standard HLS with six-second segments produces 15-30 seconds of end-to-end latency. Standard DASH with shorter default segments (2-4 seconds) produces 10-20 seconds of latency. Tuned configurations using 1-2 second chunks bring both down to 5-10 seconds. Low-Latency HLS (LL-HLS) achieves 3-5 seconds using partial segments and Delta Playlists. Low-Latency DASH (LL-DASH) achieves 3-5 seconds using chunked transfer encoding.

What codecs does DASH support that HLS doesn’t?

DASH is codec-agnostic and can deliver video encoded with H.264, H.265, VP9, AV1, and any other codec the player supports. HLS is limited to the codecs Apple has chosen to support, which are currently H.264 and H.265 (HEVC). HLS does not support VP9 or AV1. This codec flexibility is a primary reason some platforms use DASH for non-Apple devices.

Can I use both HLS and DASH without doubling my infrastructure?

Yes. With CMAF packaging, video is packaged once and stored as a single set of fragmented MP4 segments. Both an .m3u8 (HLS) and .mpd (DASH) manifest are generated from the same segments. There is no need for separate encoding, storage, or CDN configurations. Wowza Streaming Engine supports CMAF-based output for dual-protocol delivery.

Is DASH or HLS better for 4K streaming?

Both DASH and HLS support 4K streaming, the differentiator is codec support. HLS supports H.265/HEVC, which delivers up to 50% bitrate savings over H.264 at equivalent visual quality. DASH supports AV1, which can reduce bitrates by an additional 20-30% compared to H.265 in real-world streaming conditions, though results vary by content type and encoding configuration. For Apple devices, HLS with H.265 is the path to efficient 4K delivery. For non-Apple devices where AV1 is an option, DASH provides the most efficient 4K delivery.

How does DRM differ between HLS and DASH?

HLS content delivered to Apple devices must use FairPlay, Apple’s proprietary DRM. DASH content uses Widevine (Google) and PlayReady (Microsoft), both supported through the Common Encryption (CENC) standard. Reaching all platforms with protected content requires a multi-DRM approach. CMAF simplifies this by enabling shared encrypted segments, with the DRM license negotiated at the player level.

Wowza Streaming Engine: Flexible, Extensible, & Reliable Streaming

About Don Kianian

Don Kianian is a seasoned marketing professional and content strategist with deep expertise in video production technology and media workflows. He has spent more than 10 years building content, fostering awareness, and driving demand for complex technology and media solutions. He holds a Master of Science in Marketing from Santa Clara University and a Professional Certificate in Data Analytics from Google. Prior to Wowza, Don led Marketing efforts for Sherpa Digital Media, which was later acquired by Telestream. As a thought leader in the media production and video streaming space, Don hosted and produced "The Wirecast Show" in 2022-2023, joined as a featured guest in interviews to secure prominent industry analyst coverage, and has helped secure numerous awards at NAB, IBC, and Streaming Media events.
View More

FREE TRIAL

Live stream and Video On Demand for the web, apps, and onto any device. Get started in minutes.

START STREAMING!
  • Stream with WebRTC, HLS and MPEG-DASH
  • Fully customizable with REST and Java APIs
  • Integrate and embed into your apps

Search Wowza Resources


Subscribe


Follow Us


Categories

Blog

Back to All Posts