HLS vs. DASHSeptember 6, 2022
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).
Table of Contents
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:
- The ability to rewind and fast forward
- Ad insertion
- Content protection
- Closed captions
- Timed metadata
- Fallback alternatives
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.
|Playback Compatibility ||Almost all devices, apps, and browsers||Most browsers, apps, and devices minus Safari, Apple TV, and iOS|
|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.