Video Formats Optimize and Manage Video Formats Seamlessly with Cloudinary MOV vs MP4: Which Video Format Should You Use? MP4 vs WebM: Which Format is Right for Your Videos? Is There a Best Video File Format? 10 Top Video Formats 5 Ways to Change Videos to Any Format Lossless Video Format: 7 Popular Formats and How to Choose All You Need To Know About MP4 To MOV Conversion Choosing Your Codec: AVC (H.264) vs. HEVC (H.265) Decoding the Future: x264 vs. x265 Mastering HEVC: The Future-Ready Video Compression Standard Pixel Perfect: H.264 VS H.265 Explained FFmpeg: Features, Use Cases, and Pros/Cons You Should Know VP9 vs. H.264 What Are Container File Formats (Media Containers)? VP8 vs VP9: 8 Key Differences and How to Choose What Is the M4A Format? | M4A vs. MP3 vs. WAV What Is MPEG-DASH? And MPEG-DASH vs. HLS What Are Video Subtitles? Common Formats and Best Practices H.264 Video Encoding: How It Works, Benefits, and 9 Best Practices QuickTime File Format (MOV): Apple’s MPEG-4 Predecessor MP4 Format (MPEG-4 Part 14): How It Works, Pros and Cons MKV Format: How It Works and How It Compares to MP4 AVI Format: Should You Still Use AVI? Windows Media Video (WMV) Format: What You Should Know HD Format: History of HD Video and 8 Formats You Should Know M4V Format: How It Works and MP4 vs. MPV FLV Format: Security Concerns and 5 Reasons to Switch to MP4 Top Six Web-Video Formats of 2024 What Is Video Transcoding? Video Frame Rates Explained Along With Tips for Picking the Right FPS A Primer on Video Codecs Open-Source and Royalty-Free AV1 Compresses Video Efficiently and Effectively Convert Video Formats: Six Essential Features of Video-Conversion Tools OGG Format: An In-Depth Look WebM Format: Basic Facts, Compatibility, and WebM vs. MP4

What Is MPEG-DASH? And MPEG-DASH vs. HLS

MPEG DASH header

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

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

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.

“Video

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.

Learn more about MPEG-DASH streaming with Cloudinary

QUICK TIPS
Kimberly Matenchuk
Cloudinary Logo Kimberly Matenchuk

In my experience, here are tips that can help you effectively choose between MPEG-DASH and HLS for your streaming needs:

  1. Choose MPEG-DASH for flexibility in codec support
    If you need a streaming protocol that supports various codecs beyond Apple’s H.264 and H.265, MPEG-DASH is the better choice. It is codec-agnostic and can work with a wide range of coding standards, making it ideal for diverse content and delivery needs.
  2. Leverage HLS for Apple-centric ecosystems
    If your audience primarily uses Apple devices, HLS is the best option. It is natively supported on all Apple platforms, including iOS, macOS, and tvOS, ensuring seamless playback without additional plugins or third-party players.
  3. Consider MPEG-DASH for international standards compliance
    For projects that require adherence to international standards, MPEG-DASH is a more appropriate choice. As an open standard, it is widely adopted outside the Apple ecosystem and provides a reliable solution for global streaming services.
  4. Use shorter segment lengths with MPEG-DASH for low-latency streaming
    MPEG-DASH allows you to customize segment lengths, with an optimal range between 2 to 4 seconds. This can reduce latency, making it suitable for live streaming scenarios where real-time interaction is critical.
  5. Implement HLS for broad browser support
    HLS has broader support across various web browsers, especially when considering Apple’s dominant market share. This makes HLS a safer bet for ensuring compatibility across different user environments.
  6. Optimize with adaptive bitrate streaming
    Both HLS and MPEG-DASH support adaptive bitrate streaming (ABR). Leverage this feature to dynamically adjust video quality based on the viewer’s bandwidth and device capabilities, ensuring a smooth viewing experience without buffering.
  7. Utilize Cloudinary’s built-in player for seamless HLS and MPEG-DASH integration
    When embedding HLS or MPEG-DASH streams into your application, use Cloudinary’s video player. It simplifies the delivery of adaptive bitrate streams and automatically adjusts quality based on real-time bandwidth and device performance.
  8. Test performance on target devices
    Before committing to either MPEG-DASH or HLS, test your content across the devices and browsers your audience uses. This will help you identify any compatibility issues and ensure the best user experience.
  9. Consider segment length for content type
    For on-demand content, HLS’s default 6-second segments may work well, but for live content, shorter MPEG-DASH segments can provide smoother, more responsive streaming, especially for high-action events like sports.
  10. Plan for future scalability
    MPEG-DASH is gaining traction and is becoming more widely adopted for scalable video streaming solutions. If your project is expected to grow, consider using MPEG-DASH for its flexibility, codec support, and international standardization, ensuring long-term viability.
Last updated: Aug 31, 2024