MPEG-DASH is a technique for streaming video over the Internet. MPEG-DASH uses HTTP and can run on any web server.
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
MPEG-DASH is a streaming method. DASH stands for "Dynamic Adaptive Streaming over HTTP." Because it is based on HTTP, any origin server can be set up to serve MPEG-DASH streams.
MPEG-DASH is similar to HLS, another streaming protocol, in that it breaks videos down into smaller chunks and encodes those chunks at different quality levels. This makes it possible to stream videos at different quality levels, and to switch in the middle of a video from one quality level to another one.
HTTP is a layer 7 protocol for communicating over the Internet. Web applications use HTTP to send data back and forth in a way that devices at both ends will be able to interpret; this is sort of like two people from different parts of the world using a common language to communicate.
MPEG-DASH uses HTTP, which is an advantage because most of the Internet already uses HTTP. With HTTP, the stream goes to a standard port (port 80 or 443) that is almost always open. This ensures that the stream is rarely blocked by a firewall, which can block streaming protocols that use specialized or unusual ports.
The main steps in the MPEG-DASH streaming process are:
Adaptive bitrate streaming is the ability to adjust video quality in the middle of a stream as network conditions change. Several streaming protocols, including MPEG-DASH, HLS, and HDS, allow for adaptive bitrate streaming.
Adaptive bitrate streaming is possible because the origin server encodes video segments at several different quality levels. This happens during the encoding and segmentation processes. A video player can switch from one quality level to another one in the middle of the video without interrupting playback. This prevents the video from stopping altogether if network bandwidth is suddenly reduced.
HLS is another streaming protocol in wide use today. MPEG-DASH and HLS are similar in a number of ways. Both protocols run over HTTP, use TCP as their transport protocol, break video into segments with an accompanying index file, and offer adaptive bitrate streaming.
However, several key differences distinguish the two protocols:
Encoding formats: MPEG-DASH allows the use of any encoding standard. HLS, on the other hand, requires the use of H.264 or H.265.
Device support: HLS is the only format supported by Apple devices. iPhones, MacBooks, and other Apple products cannot play video delivered over MPEG-DASH.
Segmentation: MPEG-DASH usually breaks videos into smaller segments for delivery than HLS. The default segment length for HLS is 6 seconds (formerly 10 seconds), while MPEG-DASH segments are typically 2-4 seconds long. This means that MPEG-DASH enables faster switching between quality levels for quicker adjustments to network conditions.
Standardization: MPEG-DASH is an international standard. HLS was developed by Apple and has not been published as an international standard, even though it has wide support.
HTML5 support: HLS is automatically supported by HTML5, but MPEG-DASH is not. This means that some browsers or apps cannot play MPEG-DASH video streams, even on non-Apple devices.
HTML is the standard markup language for coding a webpage. In other words, it is the code that controls how a webpage looks. It is possible to view the HTML source code for any given webpage by right-clicking on the webpage and selecting "View Page Source" from the menu.
HTML5 is the latest version of HTML. It includes support for video. This enables browsers to play embedded videos without a third-party browser plugin (as is necessary for Flash); instead, browsers can natively support video.
Cloudflare video streaming products support MPEG-DASH, along with other streaming standards. The main Cloudflare products for video streaming are Cloudflare Stream and Cloudflare Stream Delivery.
Cloudflare Stream is an on-demand video streaming platform that integrates video storage, encoding, and a customizable player with the Cloudflare global network. Cloudflare Stream Delivery caches and accelerates video streams that are not stored on the Cloudflare network.
Learn more about video streaming protocols and standards.
After reading this article you will be able to:
HTTP Live Streaming
What is streaming?
Live stream encoding
What is live streaming?
MOV vs. MP4