MPEG-DASH: Dynamic Adaptive Streaming Over HTTP Explained (Update)April 18, 2022
The COVID-19 pandemic has prompted more screen time than ever before. And whether you’ve been binging content on Netflix or YouTube, the MPEG-DASH protocol has likely played a role.
So what is MPEG-DASH, and how does it work? In this article, we’ll cover it all.
What Is MPEG-DASH?
MPEG-DASH is an adaptive HTTP-based protocol for streaming media over the internet. The technology is used to transport segments of live and on-demand video content from web servers to viewers’ devices.
It’s useful to spell out the acronym when defining the MPEG-DASH standard:
To start, the Moving Pictures Expert Group (MPEG) developed the technology. As an international authority on digital audio and video standards, they were looking to create an industry-standard alternative to Apple’s HTTP Live Streaming (HLS) protocol. And so, they named it DASH, which stands for Dynamic Adaptive Streaming over HTTP.
Why was this necessary, and how do HLS and DASH compare? Buckle up — we’re in for a long ride.
Table of Contents:
- MPEG-DASH Snapshot
- Adaptive Bitrate Streaming
- HLS vs. DASH Streaming
- Low-Latency CMAF for DASH
- Adoption and What’s Next
- Audio Codecs: Codec-agnostic
- Video Codecs: Codec-agnostic
- Playback Compatibility: Good, not great
- HTML5 video players enable playback on all Android devices; most post-2012 Samsung, Philips, Panasonic, and Sony TVs; Chrome, Safari, and Firefox browsers
- iOS and Apple TV do not support DASH
- Benefits: Vendor-independent, international standard for adaptive bitrate
- Drawbacks: Not supported by iOS or Apple TV
- Latency: 6-30 seconds (lower latency only possible when tuned or delivered via chunked transfer encoding)
- Variant Formats: MPEG-DASH CENC (Common Encryption)
How MPEG-DASH Works: Adaptive Bitrate Streaming
If you’ve ever noticed the show you’re watching adjust from a fuzzy picture to sharp focus in a matter of seconds, then you’re familiar with adaptive bitrate streaming (ABR). This method for delivering streaming media enables the content to dynamically adapt to the viewer’s bandwidth capacity by shifting between high- and low-quality video encodings. Netflix, Hulu, and YouTube all rely on the MPEG-DASH format to achieve just that.
Often with ABR streaming, a video platform or server is used to ingest a single video source and transcode it into a dozen or so different renditions. The multiple renditions differ in size to enable bufferless playback on a variety of devices and connection speeds. That way, a high-bitrate, high-frame rate, high-resolution stream can be played for viewers with the most advanced setups. And for viewers with small screens and poor service, the same video is available in low quality.
The renditions are delivered as a series of sub-ten-second segments rather than as a continuous stream. That way, the stream can automatically adjust between a menu of resolution and bitrate options as the viewer’s internet speed improves or takes a nosedive.
With ABR streaming, the DASH spec delivers a stable viewing experience — but also causes an initial delay as the individual segments are downloaded. One method for addressing this is to tune latency by decreasing the segment size. Another option involves the Common Media Application Format (CMAF), which we look into below
Since the dawn of streaming media, competing technologies have been duking it out on the streaming protocol front. The most recognizable participants in the rivalry include Adobe’s Real-Time Messaging Protocol (RTMP), Apple’s HTTP Live Streaming (HLS) protocol, and MPEG-DASH.
In the Beginning, There Was RTMP
Let’s start at the turn of the century. To set the stage: Dial-up internet was still a thing, and all the cool kids were playing Snake on their Nokia cell phones. Streaming video was nascent — with Netflix still focused on delivering DVDs by mail.
At the time, RTMP reigned supreme. The then-proprietary protocol quickly transported video and audio data across the internet for playback on the Adobe Flash Player. The Flash plugin powered 98% of internet browsers at the time, making RTMP the dominant delivery mechanism for live streaming until the early 2010s.
RTMP worked about how you’d expect it to: By sending a continuous stream of data to end users via Adobe technology. Unlike today’s most common delivery protocols, this required dedicated streaming servers and the Flash player.
As we all know, Flash went the way of the dinosaurs. And Steve Jobs played a vital role in the player’s extinction. Shortly after introducing the world to the iPhone, he defended Apple’s choice to not support Flash by criticizing its proprietary nature.
The Advent of HTTP-Based Adaptive Bitrate Streaming
RTMP was soon displaced by HTML5-based technologies. This new category of streaming protocols leveraged content delivery networks (CDNs) made up of plain-old HTTP web servers to distribute chunk-based adaptive bitrate media files.
The move to adaptive streaming helped combat buffering and improve caching efficiency in one fell swoop. But a slew of new proprietary protocols were soon developed to fill the power vacuum left by RTMP. Thus, Microsoft introduced Smooth Streaming in 2008, Apple gave us HLS in 2009, and Adobe joined the party with HTTP Dynamic Streaming (HDS) in 2010.
Cue in MPEG-DASH
So how exactly did MPEG-DASH enter the picture? Alex Zambelli’s summarized it nicely for The Guardian years back:
“It was evident early on that another clash of proprietary streaming technologies would do more damage than good to an industry that was on the verge of maturing into mainstream, so in 2009 efforts began in 3GPP to establish an industry standard for adaptive streaming. Early 3GPP standardization work shifted to ISO/IEC MPEG working groups in 2010, where it moved quickly from proposals to draft status to ratification in less than two years. More than 50 companies were involved — Microsoft, Netflix and Apple included — and the effort was coordinated with other industry organizations such as 3GPP, DECE, OIPF, and W3C. By April 2012, a new standard was born — Dynamic Adaptive Streaming over HTTP, colloquially known as MPEG-DASH.”
Or, to put it another way: the Moving Pictures Expert Group (MPEG) designed DASH as an alternative to HLS and other proprietary technologies.
MPEG-DASH Live Streaming in 2020 and Beyond
Today, MPEG-DASH and HLS are the two most common HTTP-based protocols. But there’s a clear winner as far as adoption goes (Hint: It’s the one endorsed by Apple). Just take a look at the responses to our Streaming Latency Report.
Which video streaming formats are you currently using?
So… What gives? Will non-proprietary protocols ever climb their way to the top? Our hope is yes. But only time will tell.
HLS vs. DASH Streaming
Both HLS and DASH function similarly from a technical perspective. The main point of differentiation between the two technologies stems from ownership: HLS is specified by Apple, whereas with DASH you get an open-source option.
By virtue of being an Apple-backed technology, HLS is better supported across Apple products. Why? It’s simple. Apple would rather prioritize its proprietary standard than the open-source alternative. The very thing Steve Jobs chose to criticize about RTMP is what keeps HLS in the lead.
This means that while Safari will natively play streaming content delivered over HLS, you’ll need an HTML5 video player to view content streamed using DASH. It’s imperative that the player used is a DASH client.
Likewise, Apple TVs and iPhones will only accept HLS streams. The only workaround here would be to create your own app.
A few final ways that HLS and DASH diverge is in their encoding formats and low-latency delivery methods, which we summarize in the list below.
HLS vs. MPEG-DASH Comparison
- Proprietary vs. international: HLS is proprietary to Apple, whereas DASH is an open standard defined by MPEG.
- Playback compatibility: HLS is more widely supported than DASH due to the immense influence that Apple has on the industry at large.
- Codec requirements: Whereas HLS specifies the use of certain video codecs (H.265, H.265)and audio codecs (detailed here), DASH is codec-agnostic. This could enable higher quality broadcasts at lower bitrates when more advanced codecs are leveraged.
- Container format: HLS has traditionally used the MPEG-2 transport stream container format, or .ts (MPEG-TS), whereas DASH used the MP4 format, or .mp4.
- Latency: Both protocols have traditionally lagged in terms of delivery speed, but new approaches seek to change this. For DASH, this takes the form of the Common Media Application Format (CMAF), whereas Apple now offers the Low-Latency HLS extension.
Low-Latency CMAF for DASH
CMAF stands for the Common Media Application Format. In a nutshell, that’s what it is: a media format that improves cross-compatibility between HLS and DASH by specifying the same container format for both protocols — fragmented MPG (fMP4).
By incorporating the spec into a larger system aimed at reducing latency, leading organizations like Akamai are also tackling the inherent latency of videos delivered via DASH.
Using chunked encoding and chunked transfer encoding, low-latency CMAF can be used to break streams into smaller chunks of a set duration, which can then be immediately published upon encoding. Vendors are working to add support for this emerging technology, but the emergence of Low-Latency HLS has slowed adoption.
More information on low-latency CMAF can be found in this blog.
While the DASH protocol is inherently flexible, this can present challenges. Specifically, it’s hard for broadcasters to determine the best configurations when anything goes.
The DASH-IF recognized this obstacle and developed the DASH-AVC/264 Implementation Guidelines as a way to guide adoption. In their own words:
“One of the main challenges facing DASH after its standardization was its own flexibility, expressed through the many features and options allowed by the core specification. Being codec agnostic, for example, is a plus when supporting new codec options, but poses a challenge for encoder or player builders — which codec do you support in your DASH player? What segment encapsulation should the encoder generate? How should DRM be signaled? What closed captioning format do you support? The flexibility inherent in the standard made it more difficult to achieve interoperability between various initial implementations.
Recognizing full interoperability is the key for MPEG-DASH rapid market adoption, the DASH-IF decided to take the raw DASH standard, marry it with a codec, apply tight profiles and other restrictions, and create a baseline recommendation that everyone could use to build interoperable products and services without painful integration. Interoperability is the key to adoption because if a format ‘works everywhere’ then its growth will accelerate. The name of this recommendation is ‘DASH-AVC/264 Implementation Guidelines’ and you can download it from https://dashif.org.”DASH Industry Forum (DASH-IF)
Several embeddable HTML5 video players support MPEG-DASH playback across browsers. The DASH-IF launched dash.js as a free, open-source player, and other options include:
Most content distributors choose to encode their online video using RTMP, WebRTC, or SRT and then transcode the video for adaptive bitrate delivery over DASH once it reaches a video streaming server. Wowza’s SaaS platform and media server both support DASH, providing flexibility to architect a workflow that uses the best streaming protocols at ingest and delivery — depending on your specific requirements).
That said, it’s wise to deliver video in additional formats (such as HLS) to ensure that viewers across a broad range of devices can view the content. Again, a streaming solution like Wowza is your best bet for repackaging the stream into multiple formats to reach the broadest audience possible.
Content Delivery Networks (CDNs)
DASH is cost-effective because once packaged, it can be transported using traditional network servers and technology. This makes it easy to scale using a CDN.
Some of our favorite CDNs for live streaming that offer DASH support include:
DASH Adoption and What’s Next
The power struggle between vendor-specific technologies and open standards is nothing new in the streaming industry. But while proprietary protocols like RTMP and HLS remain prominent, open-source alternatives like DASH could be the way of the future.
Why? MPEG-DASH delivers clear benefits due to its open nature. For one, it’s being developed through a community-driven effort led by the very best in the business. This collaborative spirit addresses the fragmentation that has plagued the streaming space — and thereby fosters a commitment to improving interoperability and eliminating complexity.
“DASH by itself is no magic panacea for the fragmentation problems of media, devices, and markets. However, the DASH-IF members do share a common vision that the long-term benefits of convergence outweigh the costs of shorter-term efforts involved in achieving that goal. They are willing to take on the work of creating recommendations, filing bugs, and attending plug-fests and interop events, with the belief that their business and the Internet streaming market in large will benefit a great deal with convergence around DASH.”
All this said, HLS continues to take center stage, slowing DASH adoption. So no matter where you land in the HLS vs. DASH debate, HLS remains your best bet when streaming to Apple devices. Luckily, Wowza makes it easy to transmux video into various formats to ensure delivery on any device.