What Is MPEG-DASH (Dynamic Adaptive Streaming over HTTP)?
MPEG-DASH or DASH (short for Dynamic Adaptive Streaming over HTTP) is a streaming video format with adaptive bitrate. It enables high-quality media content streaming via a standard HTTP web server. Like Apple HTTP Live Streaming (HLS), MPEG-DASH works by dividing content into a series of smaller segments delivered over HTTP.
The segments can contain short playback intervals of longer content, such as movies, sporting events, and other live broadcasts. Content is available in different bitrates, alternate segments encoded at various bitrates adjusted for fast playback intervals.
When a MPEG-DASH client plays content, the client uses a bitrate adaptation (ABR) algorithm to download the highest bitrate segment. The higher the bitrate, the lower the likelihood of stalling or re-buffering during playback.
The MPEG-DASH client, dash.js, provides buffer-based (BOLA) and hybrid (dynamic) bitrate adaptation algorithms. As a result, MPEG-DASH clients can adapt seamlessly to changing networks and provide high-quality playback with minimal interruptions and re-buffering events.
In this article:
- The History of MPEG-DASH
- How MPEG-DASH Works: Adaptive Bitrate Streaming
- MPEG-DASH vs. HLS: Pros & Cons
- HLS and MPEG-DASH Adaptive Streaming with Cloudinary
The History of MPEG-DASH
MPEG-DASH started its development journey in 2010 when platforms like Netflix and YouTube established a framework to popularize video streaming by consumers. Initially, the streaming quality was often low and prone to significant stalling, buffering, missing or incorrect plug-ins, and low image resolution.
MPEG-DASH sought to establish a new standard for video streaming, ensuring the delivery of quality video streams to consumers without significant issues. MPEG-DASH achieved this using adaptive bitrate streaming, breaking videos down into small segments and encoding them at varying levels of quality. Adaptive bitrate technology can immediately identify the user device’s bandwidth, adjusting the stream’s quality accordingly.
The industry standardized MPEG-DASH in 2012, making it the first international standard for adaptive bitrate streaming. MPEG-DASH was groundbreaking because it enabled devices connected to the Internet to receive high-quality video streams regardless of bandwidth. This standardization gave streaming platforms the confidence of a universally adopted set of capabilities, with a further reach than a proprietary solution.
MPEG-DASH is codec-agnostic, so it supports content encoded in any format. The whole media industry benefited from this ability to improve streaming quality. The first live demonstration of MPEG-DASH was in August 2012, when VRT provided a viewing experience of the Olympic Games.
MPEG-DASH has a far-reaching impact—it transformed the video streaming industry and enhanced live broadcasting, on-demand, low-latency, and 5G streaming. Major platforms like Hulu, YouTube, and Netflix rely on this standard to deliver a high-quality streaming experience, accounting for over half of today’s global Internet traffic.
MPEG is currently developing another edition to improve the viewing experience further, meet the constantly changing needs of the video streaming market, and ensure compatibility with emerging technologies.
Related content: Read our guide to MP4 format
What is HTTP?
HTTP, short for Hypertext Transfer Protocol, is a crucial form of communication used for transmitting hypermedia documents such as HTML on the internet. Specifically, it’s categorized as an application layer protocol, or layer 7 protocol, integral to the sharing of data on the World Wide Web.
In terms of its technical functioning, HTTP communication is typically conducted via standard ports – port 80 for unsecured communication and port 443 for secured (HTTPS). The use of these standard ports ensures wider accessibility and fewer blockages, as they are commonly open on most systems. Thus, data transmission over HTTP experiences lesser restrictions by firewalls, which often block protocols utilizing unusual or specialized ports.
How MPEG-DASH Works: Adaptive Bitrate Streaming
Most viewers will have encountered Adaptive Bitrate Streaming (ABR), for example, when the program they view adjusts from a blurry image to sharp focus within seconds. This dynamic streaming method allows media content to adapt to the bandwidth capacity of the viewer’s device. It can switch between low-quality and high-quality encodings to deliver seamless video.
Netflix, YouTube, and Hulu use MPEG-DASH to ensure a consistent viewing experience. ABR streaming typically involves a server or video platform that ingests a given video source and transcodes it into multiple renditions. Different versions of the content in different sizes allow for buffer-free playback on various devices and changing connection speeds.
ABR allows viewers to play streams with high bitrates, high frame rates, and HD media with advanced settings. Viewers can play a lower quality rendition of the same video for smaller screens or with unreliable service.
MPEG-DASH delivers the renditions as a sequence of segments (usually several seconds long) rather than a continuous stream. ABR automatically adjusts the stream based on bitrate and resolution options selection when the Internet speed increases or decreases.
The DASH specification with ABR streaming provides a consistent viewing experience, but there is also an initial delay while downloading individual segments. One way to solve this problem is to reduce the segment size and adjust the delay.
Players
There are numerous HTML5 video players that can be embedded and support MPEG-DASH playback over various browsers. The DASH-IF introduced dash.js, a complimentary open-source player. Additionally, there are other players, namely:
- Wowza’s integrated player
- THEOPlayer
- Video.js
- Flowplayer
- Clappr
- JWplayer
- Bitmovin
- VLC Media Player
Pro Tip
Consider Cloudinary’s Adaptive Bitrate Streaming
Adaptive bitrate streaming is a video delivery technique that adjusts the quality of a video stream in real time according to detected bandwidth and CPU capacity. This enables videos to start quicker, with fewer buffering interruptions, and at the best possible quality for the current device and network connection, to maximize user experience.
There are numerous HTML5 video players that can be embedded and support MPEG-DASH playback over various browsers. The DASH-IF introduced dash.js, a complimentary open-source player. Additionally, there are other players, namely:
- Wowza’s integrated player
- THEOPlayer
- Video.js
- Flowplayer
- Clappr
- JWplayer
- Bitmovin
- VLC Media Player
MPEG-DASH vs. HLS: Pros & Cons
HTTP Live Streaming (HLS) is a streaming protocol for delivering live video content over the Internet. Apple initially launched HLS to provide access to live streams from the iPhone.
HLS and MPEG-DASH both operate over HTTP and use Transmission Control Protocol (TCP) as the underlying transport protocol. They work similarly, compressing videos into smaller segments with associated index files and sending them to the playback device in sequence using ABR streaming. Both protocols optimize the streams for the hardware and data connection speed to minimize playback issues.
However, there are important differences, including:
Support
- HLS is Apple’s proprietary protocol and, although widely supported. It is not an international standard but is the only format with native Apple support.
- MPEG-DASH is an international standard and is not specific to any particular company. However, Apple devices like iPhones and MacBooks don’t support DASH-delivered videos in Safari (although using another browser easily solves this problem).
Encoding
- HLS only supports the Apple H.264 and H.265 codecs.
- MPEG-DASH supports all coding standards.
Segment Length
- HLS splits content into 6-second segments by default, but these are adjustable to other lengths.
- MPEG-DASH splits content into 2- to 10-second segments, with the ideal length generally between 2 and 4 seconds.
Popularity
- HLS generally has a more established market share and remains popular.
- MPEG-DASH is a relatively new streaming protocol and remains unproven for some use cases. However, it is just as powerful as HLS.
HLS and MPEG-DASH Adaptive Streaming with Cloudinary
The built-in video players available with many desktop and mobile browsers do not support HLS and/or MPEG-DASH adaptive bitrate streaming formats. By embedding the Cloudinary video player in your application, you can deliver any HLS or MPEG-DASH video. By using this capability in conjunction with Cloudinary’s automatic transcoding from standard video formats to HLS or MPEG-DASH, including generation of all related files and video representations, you can stream any video in your Cloudinary account to your users according to the bandwidth and CPU capacity that the video player detects in real-time.
When streaming with HLS and DASH, the video player will automatically adjust the quality depending on the available bandwidth. The player also includes a quality selector for the representations generated. This enables users to select a specific quality instead of automatic selection.