Livery

What is MPEG-DASH? Everything you need to know about DASH live streaming

There are a lot of moving parts that all come together to make live video streaming magic. In this article, we’ll explore DASH-based video content players: what they are, how DASH works, and how it connects to other pieces of the streaming puzzle. Let’s dive in.

What is a video player?

Before we get into the specifics of the DASH player, let’s define more broadly what a video player is. A video player refers to the software used to play video content on a device, both for live content and on-demand. It can be downloaded locally as an application onto a device or accessed through a browser. The ones you might recognize include VLC, Windows Media Player, HLS,js, JWPlayer, ExoPlayer, etc.

For livestreaming use cases, the player may also include interactive features, such as a chat function for viewers to communicate with each other. Without a player, it would not be possible for users to watch streaming content in real time. The player also helps to regulate playback, allowing viewers to pause or rewind as needed. Overall, a video player is essential for accessing and enjoying both pre-recorded (on-demand) and livestreamed content.

Each player is unique, and they continue to get better

The main purpose of a video player is to play video content, but not all types of video content are compatible with every player. Not all codecs, formats, platforms, or types (live, catch-up, and/or VOD) of video content can be played on all players. Each player has its own set of unique features that distinguish it from the rest. The differences go beyond the media type – each player has its own unique set of features to accommodate the best possible viewing experience.

The latest features adopted by video players include the support of interactive capabilities. Interactivity on a video allows the viewers to access additional information about the content, or in the case of a live stream, allows viewers to become active participants in the content they’re watching.

What is a DASH JavaScript player?

Before we describe the player, let’s touch on what DASH, or Dynamic Adaptive Streaming over HTTP, is. DASH is a technology that attempted to improve streaming as a whole by aiming to become an international standard (instead of its predecessors that were exclusive to one type of device, like Apple or Android). For this reason, it is a popular streaming method used by major platforms, such as Netflix and YouTube.

Building on that, a DASH JavaScript player is a DASH-compatible video player.

What is MPEG-DASH?

MPEG-DASH, or Dynamic Adaptive Streaming over HTTP, is a video protocol, not a format. A format applies to files, whereas a protocol applies to the method of communication. When Googling for DASH, you will notice DASH.js in the search list. The name can get confusing, but DASH.js is a player for the playback of MPEG-DASH via JavaScript and not the protocol itself.

MPEG-DASH is a relatively new (international) standard and was created as a competitor to Apple’s HLS. With any explanation of MPEG-DASH, we naturally end up comparing it to HLS. This is because MPEG-DASH was created to address the fragmented streaming markets and provide organizations with a more flexible protocol. It is otherwise very similar to HLS.

MPEG-DASH isn’t owned by any single company/entity, but Apple owns HLS.

Similar to HLS, MPEG-DASH breaks the video content down into smaller segments and streams them over TCP to the end user. An encoder can encode the segments in multiple bitrates (qualities), making it possible to switch qualities in the middle of the stream.

With LL-HLS or LL-DASH, (LL standing for the ‘low latency’ variation of each protocol), the segments are split into smaller parts, called chunks. These smaller chunks lower the end-to-end latency to 1-3 seconds.

Note: Currently, LL-DASH wins the race for low latency. With LL-DASH, a sub-second latency is within reach, whereas LL-HLS is currently in the realm of 2-3 seconds. 

MPEG-DASH (and LL-DASH), is codec agnostic, where HLS requests you to use H.264 or H.265. This might become a key distinguisher with the arrival of 8k content and the need for more efficient codecs. The biggest drawback for MPEG-DASH compared to HLS is the lack of support for iOS Safari.

How does DASH playback work?

DASH playback involves three main steps: 1) Encoding, 2) Delivery, 3) Playback. In the first step, the video content gets split into segments, and for low-latency streams, chunks. The segments and/or chunks are encoded using the DASH (MPEG_DASH) standard and pushed to the ingest of the CDN.

These chunks then get delivered over the CDN to the user’s device through an internet connection that pushes the video chunks from the local server (or the server closest to the viewer through a CDN). The final step involves decoding the chunks and playing them back as close to real time as possible for the viewer to watch through the DASH-supported video player. DASH offers several advantages to other streaming methods, such as improved scalability and adaptability to varying network conditions. Let’s break these steps down in a bit more detail, next.

Step 1: Segmentation & Encoding

During the segmentation and encoding step, the video content gets divided into smaller segments and/or chunks (breaking the giant file into thousands of smaller files) and encoded using the MPEG-DASH standard and a preferred codec, such as H264 or VP9. It is important to be sure that the end-users device/player is able to playback the selected codec. This essentially means that the video has been broken into smaller bits and repackaged so it can be delivered as a steady stream of video content over the internet.

Step 2: Delivery

These segments are then delivered to the DASH JavaScript player via an HTTP/1.1 server. This server can either be a single local server (as is more often the case on small sites) or a CDN, which is an interconnected group of servers worldwide.

For large-scale live streaming purposes, a global CDN is the better choice, as each server within the network can grab and hold a copy of the video segment and/or chunk, which means that the end viewer’s device can receive these files from a location nearer to them, improving delivery speed and stability.

Step 3: Decoding and Playback

Finally, the DASH player decodes the segments and/or chunks for playback on the user’s device. As it downloads new chunks, it continues to test the internet bandwidth and will adjust the quality in real time (up or down) to match the viewer’s connection speed.

If the video file wasn’t segmented, viewers would have to download the entire video file before they could start watching it (like downloading a file from Dropbox or Google Drive). Thanks to segmentation, the first few files are small, so they download quickly and allow the viewer to start watching the segments as the rest of the files download behind them.

DASH’s adaptability and compatibility make it an increasingly popular choice for streaming video content.

What’s the Difference: MPEG-DASH vs. DASH JavaScript Player

You may have heard the terms “DASH,” “DASH player,” and “MPEG-DASH” and feel confused – how does MPEG-DASH relate to the DASH JavaScript Player?

The DASH JavaScript player is an open-source HTML5 video player based on the MPEG-DASH protocol. Put simply, MPEG-DASH is a standardized protocol for online video streaming, and the DASH JavaScript player was designed to read and play MPEG-DASH streams. It’s one of many players that can read the MPEG-DASH protocol.

The MPEG-DASH format allows for smoother and more efficient streaming. It is supported by major hardware and software companies, making it a widely compatible choice.

HLS vs. DASH

HLS, or HTTP Live Streaming protocol, breaks up the video into smaller chunks for better adaptability to varying network conditions. DASH, or Dynamic Adaptive Streaming over HTTP, also involves segmenting the video but uses a different algorithm in how it adapts to changes in the network.

Ultimately, both HLS and DASH provide a smooth streaming experience for the viewer. However, it’s worth considering which format works best for your specific needs. For example, some devices may be more compatible with one format versus the other. Additionally, while both formats use HTTP protocol, HLS was originally developed by Apple and is more commonly used on iOS devices, while DASH was first introduced by Microsoft and tends to have better compatibility with Android devices.

Closing Thoughts

You can host an MPEG-DASH-based livestream with as little as a cellphone, and as much as your own dedicated server environment. The best thing you can do is give DASH streaming a try, then adjust your setup over time. You’ll learn much more by simply giving it a try than any article could ever teach.

Click here to schedule a free demo to learn more about interactive livestreaming with Livery.

Share this article

Related explanations

What is a CDN? The Beginner’s Guide to Livestreaming and CDNs

What is CMAF? The Beginner’s Guide to Ultra-Low Latency Streaming with CMAF