What is DASH & HLS Live Streaming?
Introduction
Live streaming has undoubtedly become a crucial part of online media consumption. Whether you’re watching a live stream of a local news network to engaging with content creators on a YouTube live stream, they all work using one of the following web protocols:
- MPEG-DASH (MPEG-Dynamic-Adaptive-Streaming-over-HTTP)
- HLS (HTTP-Live-Streaming)
Both protocols work in a similar fashion — data is encoded (split up) into chunks and sent to a client to view.
HLS (HTTP Live Streaming)
HLS, or HTTP Live Streaming, is a standard developed by Apple. This diagram gives a broad overview of an HLS live stream in action:
The technology, in principle, serves multiple playlists for adaptive bitrates so a user with a slow connection who wants to watch a live stream can still view a lower quality 1280x720 (720p) stream while users with faster connections can access a higher quality 3840x2160 (4K) stream). When a browser loads the player, it parses the M3U8 playlist, reads video/stream metadata, and plays through chunks. These chunks tend to be a few seconds long, and they all have time markings that a player can use to stitch the video together.
Another feature of HLS is accessibility: video streams can contain VTT subtitle files which a player can display on-screen. You may have noticed this if you’ve used Bunny.net Stream, which uses HLS to serve Videos on Demand. Because HLS encodes video in plain text, other accessibility features, like automatic translation, become possible.
DASH (Dynamic Adaptive Streaming over HTTP)
As mentioned previously, DASH works similarly to HLS streams. MPEG-DASH was developed by a consortium of companies, and is internationally recognized as the de facto standard for live streaming. These videos, however, are not natively supported on certain platforms (namely iOS), so platforms often end up supporting HLS-powered streams (or both) due to platform compatibility.
With DASH streams, a client-side player requests a playlist, a text file containing a list of chunks. Those chunks are used, in conjunction with the playlist, to form a stitched, uninterrupted, video of any length. (Any length. Videos can be hundreds of hours long!)
Other uses
While HLS/DASH are often called live-streaming protocols, they can also be used for regular video streams. When used with a suitable transcoder (that can split these chunks), HLS/DASH can enable Adaptive Bitrate Streaming for any VOD (Video on Demand).
Furthermore, with wide browser support and a plethora of players to choose from, live streaming has become easier than ever. HLS and MPEG-DASH benefit end-users with improved streaming performance without requiring plugin players like flash. These technologies work in conjunction with HTTP compression and other web technologies to deliver a pleasant user experience.
This goes for streamers as well: with HLS natively supported in OBS (a very popular application used to manage and create video streams), streamers should have no trouble using the technology. The standardized protocols can be easily processed on ingest endpoints (Twitch, YouTube, etc.) and transcoded for Adaptive Bitrate Streaming.