What is HDS streaming? | HLS vs. HDS

HTTP dynamic streaming (HDS) is a method for delivering video to end users over the Internet using HTTP. HDS is not as commonly used as other streaming protocols like HTTP live streaming (HLS).

Learning Objectives

After reading this article you will be able to:

  • Understand how HTTP dynamic streaming (HDS) works
  • Contrast HDS with HTTP live streaming (HLS)
  • Explain why HDS has less widespread support than HLS

Copy article link

What is HTTP dynamic streaming (HDS)?

HTTP dynamic streaming, or HDS, is an adaptive bitrate streaming method developed by Adobe. HDS delivers MP4 video content over HTTP connections. HDS can be used for on-demand streaming or live streaming. Since they are delivered over HTTP, HDS streams can be cached — either by a content delivery network (CDN) or another caching server.

HDS was developed for use with Adobe Flash Player and Adobe AIR. Adobe Flash Player has been discontinued, and an outside firm now supports AIR instead of Adobe. HDS is not supported by Apple devices.

What was Adobe Flash Player?

Adobe Flash Player was a browser plugin for playing video content. For many years, the Flash plugin was the most widespread way to embed video into webpages. However, after the release of the HTML5 video element, Flash was no longer the main option for embedded video. In addition, Flash had many security vulnerabilities that made it dangerous. (For instance, several Flash vulnerabilities allowed attackers to execute any code they wanted in someone's browser.)

Browsers and operating systems gradually dropped support for Flash over the years to avoid security incidents. Finally, Adobe stopped supporting Flash Player on December 31, 2020.

How does HDS streaming work?

The process of creating and delivering an HDS stream is roughly:

Server: Before video files can be streamed via HDS, they must be converted from regular MP4 to the F4F (fragmented MP4) file format. F4F video files contain audio, video, and metadata. Because the files are "fragmented," these three elements can be stored separately from each other.

HDS videos are encoded with H.264, which is a common encoding standard. Like many other streaming technologies, HDS encodes versions of the video file at multiple quality levels and divides videos into shorter segments a few seconds in length. This makes adaptive bitrate streaming possible (learn more below).

Distribution: HDS video segments are pushed out to client devices that request the stream over the Internet. A CDN usually helps distribute the stream, along with caching the stream to serve it more quickly.

Client: The device that requested the stream uses the video's manifest file, which is contained within the metadata, as a reference for assembling and playing the video segments in order. It also changes the picture quality as needed.

What is a manifest file?

A manifest file can be compared to a set of directions for assembling a model airplane. The directions indicate where each piece goes, enabling someone who owns the model kit to build the airplane themselves.

Similarly, a video's manifest file tells a client device playing the video (such as a user's laptop or smartphone) how to assemble the video segments in order, how to load the audio file, where subtitles are stored, and so on. This allows the client device to construct and play the video correctly.

Manifest files are stored in video metadata. A file's "metadata" is information about the rest of the file.

What is adaptive bitrate streaming?

Adaptive bitrate streaming is a technique that allows video players to adjust the quality level of a video in response to network conditions. If a network connection is performing slowly, the player loads lower-quality video segments, which can load more quickly. If a network connection is performing better, the player loads the video in high definition instead. These adjustments are made while the video is playing.

Adaptive bitrate streaming is possible because streamed videos are divided into segments and encoded at several different quality levels. As a result, a player can select from multiple quality levels for each segment of video. After each segment, the player can switch to a higher or lower quality level as needed.

HDS uses adaptive bitrate streaming, and the similarly named HTTP live streaming (HLS) does as well.

HLS vs. HDS: What is the difference?

HLS is one of the most widely used streaming protocols. HLS started out as a proprietary streaming protocol developed by Apple, although it has since become an open standard. Apple devices still support only HLS.

One important difference between these two streaming methods is that HDS has less widespread support and adoption than HLS. As of 2021, Apple has close to one-fourth of the smartphone market worldwide, so using HDS cuts out a significant chunk of potential viewers. In fact, HDS was meant for use with Adobe Flash, which has been discontinued. Today, relatively few viewers are likely to have devices that can play HDS streams.

Cloudflare Stream makes it easy to upload and stream video to viewers all over the world. Learn more about the formats supported by Stream.