Description
HTTP Live Streaming (HLS) is an adaptive bitrate (ABR) streaming protocol that delivers multimedia (audio, video, and associated metadata) over standard HTTP connections. Although originally developed by Apple, its widespread adoption led to its specification within 3GPP for ensuring interoperability and efficient delivery in mobile environments. The core principle of HLS is to segment the continuous media stream into a series of short, discrete media files (typically .ts files for MPEG-2 Transport Stream or .mp4 fragments). These segments are listed in a playlist file called a Master Playlist and Media Playlists (M3U8 format), which are simple text files referencing the segment URLs. The client player downloads the playlist first, then sequentially downloads and plays the media segments.
The architecture of an HLS delivery system consists of three main components: the server, the distribution component, and the client. On the server side, a media encoder and stream segmenter prepare the source content. The encoder typically creates multiple renditions of the same content at different bitrates and resolutions. The segmenter packages each rendition into the series of small files and generates the corresponding playlists. These files are then placed on a standard web server or Content Delivery Network (CDN) for distribution. The distribution is purely over HTTP, leveraging the massive existing infrastructure of the web, including caching proxies and CDNs. No specialized streaming server protocol is required.
On the client side, the HLS player (e.g., in a mobile app or web browser) performs the adaptive logic. It starts by downloading the Master Playlist, which contains links to the various Media Playlists, each corresponding to a different bitrate rendition. The player initially selects an appropriate bitrate based on estimated bandwidth and device capabilities. It then begins downloading segments from that rendition's playlist. Crucially, the player continuously monitors the download speed and buffer health. If conditions deteriorate, it can seamlessly switch to a lower-bitrate playlist for subsequent segments to avoid rebuffering. Conversely, if bandwidth improves, it can switch up to a higher quality. This switching happens on segment boundaries, making the adaptation smooth. 3GPP's work on HLS, documented in specifications like TS 26.244 (Transparent end-to-end packet-switched streaming service), focuses on profiles, codecs, and delivery optimizations for mobile networks, ensuring efficient use of radio resources and a good Quality of Experience (QoE) for the user.
Purpose & Motivation
HLS was created to solve the problem of reliable, high-quality video streaming over unpredictable networks, particularly the public internet and mobile networks. Prior streaming technologies like RTSP/RTP often required specialized servers, faced firewall/NAT traversal issues, and did not handle fluctuating bandwidth well. The shift to HTTP-based delivery was motivated by the universal compatibility of HTTP: it traverses firewalls easily, benefits from ubiquitous web caching infrastructure (CDNs), and scales simply using standard web servers. This dramatically reduces the cost and complexity of deploying large-scale streaming services.
Its adoption into 3GPP standards was driven by the explosive growth of mobile video traffic. Mobile networks present unique challenges with variable throughput, latency, and packet loss due to radio conditions, mobility, and congestion. HLS's adaptive bitrate capability is perfectly suited to this environment, as it allows the client to dynamically match video quality to the available network capacity, preventing stalls and providing the best possible experience. 3GPP standardization ensures a consistent implementation baseline across devices and networks, facilitating interoperability. It addresses the limitations of earlier proprietary or less adaptive streaming methods, enabling services like live TV, video-on-demand, and event streaming to work flawlessly on smartphones and tablets, which became the primary video consumption devices.
Key Features
- Adaptive Bitrate Streaming (ABR): Dynamically switches between multiple encoded bitrates based on real-time network conditions.
- HTTP-Based Delivery: Uses standard HTTP GET requests, leveraging existing web infrastructure, CDNs, and caching.
- Media Segmentation: Breaks streams into short, downloadable files (e.g., 2-10 seconds) for flexible switching and seeking.
- Playlist-driven (M3U8): Uses text-based playlist files to index available media segments and alternate renditions.
- Broad Codec Support: Typically employs H.264/AVC or H.265/HEVC for video and AAC for audio, with support for others.
- Live and On-Demand Support: Unified protocol architecture supports both live streaming and pre-recorded content delivery.
Evolution Across Releases
Initial adoption and specification of HTTP Live Streaming within 3GPP for multimedia broadcast/multicast services (eMBMS) and packet-switched streaming. This release defined profiles and delivery procedures for HLS over mobile networks, focusing on integration with the Evolved Packet System (EPS) and ensuring efficient delivery mechanisms for adaptive streaming.
Defining Specifications
| Specification | Title |
|---|---|
| TS 26.346 | 3GPP TS 26.346 |
| TS 26.347 | 3GPP TS 26.347 |
| TS 26.348 | 3GPP TS 26.348 |
| TS 26.511 | 3GPP TS 26.511 |
| TS 26.512 | 3GPP TS 26.512 |
| TS 26.802 | 3GPP TS 26.802 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.841 | 3GPP TS 26.841 |
| TS 26.857 | 3GPP TS 26.857 |
| TS 26.926 | 3GPP TS 26.926 |
| TS 26.948 | 3GPP TS 26.948 |
| TS 26.955 | 3GPP TS 26.955 |
| TS 26.956 | 3GPP TS 26.956 |
| TS 26.998 | 3GPP TS 26.998 |