What is HLS?
HLS is the acronym for HTTP Live Streaming. By the term, you can understand that it is solely related to audio and video streaming over internet. The HLS is a media streaming protocol that has been first implemented by Apple Inc. Apple rendered the service to its iOS, macOS, QuickTime, Safari, etc. Before, we found difficulty in viewing videos on internet. Most of the times, the videos did not play smoothly and were frequently interrupted by buffering. This is because the source of the media file, that is internet and the destination, that is, your iOS devices were not properly synchronized in terms of encoding, decoding. The hardware of the devices played a big role in restricting the proper sync.
Hence, HLS was implemented. In HLS, the overall video to be streamed is broken into small chunks of HTTP based file downloads, usually of duration 10 seconds. Each file download is nothing but one small component of unbounded stream, and they are encoded with different bit rates and transmitted to the client via specific media playlists.
HTTP Live Streaming is beneficial for a number of reasons. Since, the entire videos are decomposed into several chunks, these chunks are also made available in different qualities and resolutions. You might have witnessed this. For example, much before when we used to play videos on YouTube, a lot of time got wasted in buffering. But now, the scenario is different. If the bandwidth of internet is commendable, then the video plays in the highest possible quality, but as soon the internet connectivity gets disrupted for any reason, the bandwidth reduces, the video quality gets reduced but it doesn’t put you on hang. So, content creators has to add chunks of files in all available qualities, so that users can enjoy seamless streaming experience.
The HLS protocols demands to chop a video content into video chunks of 10 seconds. Each such clip is made available in different qualities. HTTP delivers chunks of particular quality, to the users, based on the internet bandwidth. If the internet is strong, it will supply high quality chunk, and if the internet is slow, it will deliver low quality chunk. Latency (or lag time) for HLS live is compliant with the specification, usually in the 15-30 second range.
A Simple Explanation of HTTP Live Streaming Architecture
The simple architecture of HLS comprises of a server component, distribution component and client software.
The function of server component is to receive input streams of media and encode them digitally. The server component encodes them into formats that are ready for delivery to the distribution component for distribution.
The function of the distribution component is to deploy a web cache system that is capable of delivering the media and index files to the client. Here, you have to remember that the distribution process does not rely on any custom server module or any complex configuration.
The function of the client software is huge. It determines which media have been requested, which mandatory resources are to be accessed and finally the it assembles everything in place, so that the entire package can be delivered to the users as continuous stream.
This is the basic aspects of HLS. Hope this article helped you!