HTTP live streaming, also known as HLS, is a standard adaptive streaming technology introduced by Apple. HLS can be employed to broadcast live, on-demand, and even audio streaming to users over HTTP.
Like other adaptive streaming methods, a video file contains different versions with different bitrates, the details of which are kept in a file named the 'manifest'. Then, each of these different versions is divided into smaller sections known as chunks (.ts files).
The manifest is an m3u8 file; it is a text file used by video and audio players. In addition to different resolutions of a stream, this file includes the position of each chunk, data rate, subtitle (if any), language, etc. If the manifest is opened with a text editor (e.g. Notepad), its contents will be as follows:
The first file downloaded by the player is the manifest. Before the video plays, the player has no information regarding its structural status including the available bandwidth. Therefore, the player selects the lowest resolution from the manifest file and starts playing the video. Then, it monitors the bandwidth and switches to the high-quality version if the bandwidth is evaluated at a satisfactory level. When the video is being played, if the connection gets interrupted or the bandwidth suddenly drops, the player immediately switches to the low-quality version to avoid stopping the video.
In live streaming, the server receives a raw and uncompressed video and compresses it using an encoder (a hardware or software tool used to change the formats of video data) and the H.264 codec, converting it into the MPEG-2 Transport Streams format. Then, the stream is divided into different chunks and the manifest file is generated. The chunks and the manifest file are stored on the webserver to be delivered to the end user.
Being totally compatible with HLS, ArvanCloud employs the adaptive bitrate method to provide end users with the content. In fact, it guarantees that end users will see the video content in the shortest time possible and at the highest quality in accordance with their Internet connection status.
Although HLS was introduced by Apple, it has now become a standard protocol for different browsers such as Google Chrome, Safari, and Microsoft Edge as well as Android, macOS, and iOS devices (e.g. iPad and iPhone).