HTTP Live Streaming (HLS) is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc.
Adaptive bitrate streaming means that the client media software dynamically detects the Internet speed of the user, and then adjusts video quality in response.
Support for this protocol is widespread in media players, web browsers, mobile devices, and streaming media servers.
Technical Overview Of HLS Streaming
With normal HTTP streaming the HLS protocol separates the video file into smaller segments with the “.ts” file extension (MPEG2 Transport Stream).
Since the HLS is an adaptive bitrate protocol, the bitrates must accommodate and adapt to the channel bandwidth and other parameters of the media player.
The video delivery starts by delivering a single file called Manifest File (master.m3u8) that contains links to the index files. The index files contain a playlist with references to the actual video segments.
Based on the bandwidth of the currently available connection of the user, the HLS allows the media player to adjust the video to the best possible quality.
HLS streaming format
The video files need to be encoded with H.264(AVC) or with the H.265(HEVC) compression algorithms.