MPEG-DASH and You

Logitech MEVO Camera at IRONMAN 70.3 Victoria Finish Line

MPEG-DASH is a standardized protocol for streaming video and audio over the Internet which is part of a new wave of streaming standards. Whereas older systems, such as RTMP, were often improvised and rudimentary, building off of the “figure it out as you go” nature of the early Internet, DASH was carefully planned from the start for effective and error-resistant streaming. More and more streaming services are introducing modern streaming protocols into their system, so those of us running livestreams and broadcasts suddenly have a reason to change our methods. In particular, Vimeo has been rolling out MPEG-DASH streaming to Enterprise customers through Livestream Studio, and so we here at BCC Live have been learning the strengths and intricacies of a new protocol. 

But what was so wrong with the old way? What does a streaming protocol actually do in the pipeline from camera to screen? And is there actually a good reason to switch? Let’s dig into the details. 

It’s easy to think of a livestream as a literal “river” of data flowing from a server to a client, or a client to a server, as an unbroken “stream.” However, this simply isn’t how the Internet works. Since its inception, the Internet has relied upon the concept of packet switching—the separation of data into discrete “packets” (imagine!) which can be routed along any connection to the end user and reassembled into a video, a Web page, or anything else you may be sending. If a file is split into, say, twenty packets, each one of those could be sent along one of twenty routes to the client and arrive completely out of order, and yet, because of proper packet categorization and redundancy, the client wouldn’t know that anything was amiss. 

A simple diagram showing how packet switching works—your data is transmitted in discrete pieces that are reassembled at the recipient to recreate the original file.

In effect, a video streaming protocol operates in this way. A video stream is broken up into discrete “chunks” of anywhere from a few frames to several seconds of video and transmitted to where it needs to go. It’s where the specifics come in that we find the strengths and weaknesses of each protocol. 


Ahh, the good old days of Flash. Well, they weren’t really that good, but they WERE fun.

For years, the game to beat in Internet livestreaming was the Real-Time Messaging Protocol, or RTMP. This has been used for streaming from clients to servers to clients for years and, in the specific use case we’re talking about, is used end-to-end for streaming on Vimeo for most users.  

An interesting fact is the genesis of RTMP: the protocol was developed by Macromedia for the Flash Player, that classic mainstay of the early “Web 2.0” days. Flash has been completely discontinued as of the end of 2020, but RTMP is still in use and is now controlled by Macromedia’s successor, Adobe. As you can imagine, this makes RTMP a “legacy” product which could be discontinued at any time. 

While the possibility of the protocol becoming unavailable is troublesome enough, there are other issues to contend with. For one, RTMP has limited support for video and audio file formats, which requires a resource-intensive format change depending on your inputs. For another, the network protocol RTMP uses is more or less proprietary and doesn’t share much with other protocols, so servers have to have specific configurations to accept RTMP streams. Fortunately, the ubiquity of RTMP has meant that it’s widely supported across platforms and servers, but it’s still a limitation that can prove troublesome.  

The largest limitation, however, is a lack of support for adaptive-bitrate streaming. Adaptive-bitrate streaming is, fortunately, exactly what it sounds like: a method to dynamically scale up and down the bitrate (think, “number of packets”) of a video stream based on the speed of a connection, to ensure video playback isn’t interrupted while also providing the highest-quality video possible. This requires the video to be encoded in multiple bitrates at once and essentially simulcast to the server or client, so that the correct “channel” of video quality can be selected at any given moment. This, unfortunately, is not possible with RTMP as designed. With greater demand for high-quality video over a wide range of connection types, from gigabit fiber to cellular data, support for adaptive-bitrate streaming becomes more and more crucial as the years go on. 

Sometimes all you’ve got to watch video on is an outdated phone. And there’s nothing wrong with that! Technically.

In comes the solution. MPEG-DASH builds off of the widely-accepted standards for today’s Internet to provide greater flexibility, reliability, and performance. Unlike RTMP’s proprietary server connection, DASH embeds its video “chunks” into HTTP, the Internet protocol that runs the entirety of the World Wide Web. (That’s what the “http://” at the start of Web addresses is: the protocol by which you’re sending and receiving data through the Internet!) Since the video data is enclosed within HTTP just like any Web page, any Web server could send or receive MPEG-DASH streams without special configuration, and any client can, in theory, send and receive the stream without any concerns about running into firewalls. That’s already a great incentive to switch, but it gets better. 

MPEG-DASH is, in effect, a new international standard for video streaming, which means it’s easily accessible to any user or company which wishes to implement it in their systems. As a part of this, DASH was designed to function regardless of the video and audio formats sent via the protocol, which opens up more possibilities for hardware and software compatibility. (This is one of the issues with the other popular modern streaming protocol, HLS: it was designed as a “closed system” with support for only H.264 video and AAC audio.) Of course, being a publicly-available standard also means it’s unlikely to become unavailable at short notice, which certainly helps DASH have a leg up over proprietary systems. 

While this doesn’t necessarily look interesting, having an official ISO standard for a streaming protocol is really quite cool.

Finally, support for adaptive-bitrate streaming is baked into DASH from the ground up. Have you been wondering what “DASH” stands for? It’s “Dynamic Adaptive Streaming over HTTP.” It’s in the name! Naturally, this support means video streaming can be provided at higher quality, and with better support for slow or inconsistent connections to boot. So, what you get is a foundation for more-accessible streams, with better quality, and all at a better fit for today’s networking architecture. But, well, RTMP works well enough for most cases. Is it really worth changing for us? 


Here’s where the clincher comes in. Vimeo has been rolling out MPEG-DASH support to business clients over the last several years in what it refers to as “Fail-Safe Streaming.” In effect, this relies on DASH’s adaptive bitrate support to receive a stream from your sources with the lowest likelihood of interruptions. Additionally, DASH’s HTTP packeting means video “chunks” are easier to process serverside and push out to local data centers to serve to clients. As a result, on the stream producer’s side, there are much fewer headaches about connection quality and even service interruptions—it’s much easier for the system to compensate for connection issues while still serving video to customers. 

Sometimes you need to livestream from somewhere with a less-consistent internet connection than a cozy studio—like, say, a lakeside park in British Columbia.

If you know anything about what we do, you know that this is a big deal for us. At BCC Live, we’ve livestreamed events from all sorts of strange places—from beaches to the center of bridges to the tops of mountains, from the bustling heart of Washington D.C. to the backcountry of Kona, we’ve been there and served video. While we’ve built a robust system of Internet devices to facilitate streaming from anywhere, sometimes a fast or stable Internet connection is simply not in the cards. With RTMP streaming, this would require us to manually reduce the output resolution of our stream (thus reducing the picture quality to our clients), or have to deal with interruptions and “blackouts” of the stream. With DASH, our stream output is automatically scaled based on the best possible connection to keep peak quality. What’s more, Vimeo’s implementation of DASH introduces extra buffer time to the stream. While this means a stream is a little further back from “real time” than before, it allows for greater resistance to interruptions in the connection. 

Simply put, MPEG-DASH is the perfect upgrade for a team like ours. It gives us greater leeway with the hardware and software we can utilize, provides significantly better performance in the face of network issues, and stands every chance of remaining a useful tool for years to come. We’re excited to roll it out in upcoming events to make our livestreams even better than before. Do you think it’d be right for you as well? Give it a try—or give us a call, and we’ll livestream it for you!