HLS vs. DASH

HLS vs. DASH

Adobe Flash once dominated the streaming landscape, but that’s no longer the case. When it comes to the best protocols for delivering video and audio data to end users, the discussion has turned to two newer competitors: HLS vs. DASH.  

What’s the difference between them? Truthfully, they’re very similar and perform their functions well. However, there are a few distinctions to bear in mind if you’re considering using just one in your business’s video application instead of both. So, let’s dive into the similarities and differences between HLS vs. DASH and why they matter (and if you need a refresher on the basics of streaming protocols, you can check out this article first). 

   

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. Unfortunately, iOS and Apple TVs don’t support DASH, but products from Android, Samsung, Panasonic, Philips, and Sony products, do, along with Chrome, Safari (with an HTML5 video player because it’s an Apple property), and Firefox browsers. 

 
   

HLS vs. DASH: How They’re Similar

As we’ve mentioned, the argument of HLS vs. DASH is not particularly complicated because they both use HTTP. Another of the most significant ways they are similar, however, 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. This way, end users with more advanced setups and high-speed internet can watch a live or VOD stream in high quality, while someone with an older device or poor internet connection can still watch the same stream, just in lower visual quality, instead of dealing with frustrating stalls and 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, though it’s noteworthy that Netflix, Hulu, and YouTube use MPEG-DASH for ABR.  

 

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, though there are workarounds to stream with DASH in other scenarios (such as using an HTML5 player or building your own video app).  

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

 
Apple HLS MPEG-DASH 
Playback Compatibility 
 
Almost all devices, apps, and browsers Most browsers, apps, and devices minus Safari, Apple TV, and iOS 
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 With Low-Latency HLS, around 2 seconds 
 
Without Low-Latency HLS, 6-30 seconds 
With Low-Latency DASH or CMAF, around 2 seconds 
 
Without Low-Latency DASH, 6-30 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. They were historically rather high latency due to their stream chunk sizes (10-second segments can result in as much as 30 seconds of latency because you need at least three segments ready for delivery to start delivery). Both protocols reduced their recommended chunk sizes over time, but even segments of six seconds can cause latency up to 20 seconds.  

Though it’s possible to manually adjust segments to be smaller, 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, but it can also take the form of CMAF. CMAF is a media format that can break both HLS and DASH streams into smaller chunks and publish them after encoding, CMAF is mostly applied to reduce latency in DASH streams now that LL-HLS is part of the HLS package. Overall, the latency of HLS vs. DASH is comparable.  

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 and has the potential to enable higher-quality broadcasts at lower bitrates.  

 

Wowza HLS vs. DASH

If you’re debating whether to stream with HLS vs. DASH, don’t worry — Wowza supports them both (check out this tutorial for streaming with HLS). When it comes down to it, the primary differences between HLS vs. DASH are that HLS is more widely supported, but DASH is open source and codec agnostic.  

Both offer their advantages, but that doesn’t mean you have to store your video streams in both formats to reach your audience. With Wowza Video (and Wowza Streaming Engine if you prefer an in-house solution instead of cloud-based), you can transcode between codecs and protocols to stream to anyone on any device, anywhere.  

 

Search Wowza Resources

Categories

Subscribe

Follow Us

Categories

About Jacob Yoss

Jacob is Wowza’s resident content writer, creating blog posts, case studies, and more that educate Wowza’s audience. Born and raised in Denver, Colorado, Jacob currently travels the world as a digital nomad and is also passionate about social justice, art, and fantasy literature.