HLS, or HTTP Live Streaming, is now one of the most commonly used streaming protocols at the moment. It is useful for both on-demand streaming (VOD) and live streaming, including 24/7 live linear streaming.
In this guide, we will discuss all you need to know about HLS streaming and how to implement the protocol to stream your video content.
What Is HLS
HLS, as mentioned, stands for HTTP live streaming, and is an adaptive HTTP-based protocol that is used to distribute the video and audio data from the video hosting server to viewer’s screens.
HLS is so popular that whether you are watching live video via a video streaming service app on your phone, watching a live webinar, or watching an OTT content on your TV, there’s a good chance that HLS streaming is involved.
It’s very important to note that videos delivered via HTTP are not technically traditional streams, but rather progressive downloads. At the moment, HTTP based progressive download allows the best video quality with minimum latency, allowing the best viewer experience at the moment.
Another advantage of HLS is that all internet-connected devices support HTTP protocol, so no matter the connection, device, or software type used. So, using HLS doesn’t require us to use any specialized servers and devices.
HLS stream can also increase or decrease video quality depending on the network condition without disrupting the video playback in a significant way. This feature is called “adaptive bitrate streaming” or “ adaptive bitrate video delivery”, a unique benefit of HLS.
This is why more than 45% of surveyed content distributors use HLS protocol to distribute their video content. HLS was originally developed by Apple (so it’s called Apple HLS) and was initially exclusive for Apple products, but is now used on a wide range of Android, Microsoft, and even Linux devices.
How HLS Protocol Works
Most of the HTTP-based protocols use MPEG-4 Part 14 (MP4), but HLS initially specified the use of MPEG-2 containers. However, in 2016 Apple announced the support for the fragmented MP4 format (fMP4), and today fMP4 is the preferred format for all HTTP-based streaming.
Video streams delivered via HLS are broken up into fragmented segments (called packets or chunks), so the media server will deliver these chunks instead of distributing a continuous flow of information. With this feature, the media server can allow progressive downloads and adaptive bitrate feature so the video player can automatically shift between different resolutions depending on network capabilities to drive down latency.
.M3U8 Manifest File
HLS video chunks or packets are indexed into a playlist so the video player can understand how the video should be reconstructed. For this purpose, a .m3u8 file must be created as the index of the fragmented video packets. The .m3u8 manifest file can then instruct the video player on which packet it should ‘pick’ and stream, and where to jump next. We can simply embed the .m3u8 reference URL in a web page as the video streamer, or create an application that can download the file.
Adaptive Bitrate Streaming In HLS
As discussed above, one of the key advantages of HLS over other streaming protocols is the adaptive bitrate streaming feature. With this, the HLS protocol can adjust the video resolution/quality in the middle of video playback or stream depending on the network condition. An important benefit of this feature is that the video can keep playing during network slowdown.
When there’s a slowdown, the video player detects this issue and automatically lower the video quality of the stream, so the video doesn’t stop playing. On the other hand, when there’s more network bandwidth available, this feature will also improve the quality of the video playback.
This adaptive bitrate streaming feature is only possible because the HLS protocol can create several versions of the segmented streams with different quality levels during this segmentation process. The video player simply switches between these iterations during the stream/playback based on the network’s condition.
HLS VS Other Popular Streaming Protocols
HLS, as mentioned, is originally made by Apple and at the moment is the most popular and the best option for streaming media protocols. However, other companies have also developed their own versions of streaming protocols, and here are some of the notable ones:
Made by Adobe, HDS stands for HTTP Dynamic Streaming. This protocol was designed to work with Adobe’s Flash video player and browser plug-in, which is not very popular nowadays. This is also why HDS is not very popular compared to HLS.
However, HDS is still useful for browsers and devices that do support Flash, especially for on-demand playback. HDS can produce pretty low latency with Flash video players. HDS is pretty similar to HLS in breaking down the video file into smaller packets, and also offer advanced DRM and encryption.
RTMP stands for Real-Time Messaging Protocol and was developed by Macromedia more than a decade ago. RTMP used to be the ‘default’ streaming protocol back in the days, and was known as “Flash”.
Even today, most video hosting services still support RTMP, although due to the rise of HLS, the overall usage of RTMP has declined in recent years.
The newest entry in the streaming protocol, YouTube and Netflix are famous for using MPEG-DASH. DASH stands for Dynamic Adaptive Streaming over HTTP, and it does have several advantages over HLS.
First, it is currently the first international standard HTTP-based streaming protocol, allowing better widespread adoption. However, MPEG-DASH is not supported by Safari browsers (since Apple obviously supports HLS). HLS and MPEG-DASH offer relatively similar quality and reliability, and at the moment HLS holds a slight upper hand due to the Safari support.
HLS, at the moment, is the most widely-supported streaming protocol, providing both reliability and streaming quality in most browsers and devices. You can create your own online TV channel with Viloud that supports HLS streaming so you can easily stream your video content to a wide range of devices.
Above, we have discussed the HLS protocol for streaming media, and we’ve also covered how it works and how it compares with other popular streaming protocols.