MPEG-DASH: Dynamic Adaptive Streaming Over HTTP ExplainedJuly 28, 2020
The COVID-19 pandemic has resulted in more screen time than ever for those of us stuck at home. 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 designed 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 also useful to spell out the acronym when defining MPEG-DASH. The Moving Pictures Expert Group (MPEG), an international authority on digital audio and video standards, developed Dynamic Adaptive Streaming over HTTP (DASH) as an industry-standard alternative to Apple’s HTTP Live Streaming (HLS) protocol.
Why was this necessary, and how do HLS and DASH compare? Buckle up — we’re in for a long ride.
MPEG-DASH Technical Specifications
- Audio Codecs: Codec-agnostic
- Video Codecs: Codec-agnostic
- Playback Compatibility: Good (HTML5 video players enable playback on all Android devices; most post-2012 Samsung, Philips, Panasonic, and Sony TVs; Chrome, Safari, and Firefox browsers)
- 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 over the matter of a few 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 media 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. While a high-bitrate, high-frame-rate, high-resolution stream can be played for viewers with the most advanced setups, the same video in low quality is available for viewers with small screens and poor service.
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 deceasing 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 relying on DVD delivery 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. This popular 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 web servers to distribute chunk-based adaptive bitrate media files.
The move to HTTP-based 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 in 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 another way: the Moving Pictures Expert Group (MPEG) designed DASH as an alternative to HLS and other proprietary technologies.
MPEG-DASH 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 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
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.
In 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.
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. Likewise, Apple TVs and iPhones will only accept HLS streams. The only workaround here would be to create your own app.
Two final ways that HLS and DASH diverge is in their codec requirements and low-latency delivery methods, which we summarize in the list below.
HLS vs. MPEG-DASH Comparison
- Proprietary vs. open source: 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 specific 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.
- 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 itself is a media format that improves cross-compatibility between HLS and DASH by specifying the same container format for both protocols — fragmented MPG (fMP4). And 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)
Most content distributors choose to encode their video using RTMP, WebRTC, or SRT and then transcode the video for adaptive bitrate delivery over DASH once it reaches the server. The Wowza Streaming Engine media server software supports DASH playback with DVR and provides DASH Stream Target publishing to Akamai.
It’s also 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 media server like Wowza Streaming Engine is your best bet for transcoding the stream into multiple formats to reach the broadest audience possible.
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 Streaming Engine makes it easy to transmux video into various formats to ensure delivery on any device.