The Complete HLS Streaming Guide

How HTTP Live Streaming powers modern IPTV and OTT platforms

Updated March 2025 8 min read HLS, Streaming, IPTV

What is HLS?

HTTP Live Streaming (HLS) is an adaptive bitrate streaming protocol developed by Apple in 2009. It is now the dominant standard for delivering live and on-demand video across the internet — used by Netflix, YouTube Live, Twitch, DSTV Now, and virtually every major South African broadcaster.

Unlike traditional progressive download, HLS breaks video into small segments (typically 2–10 seconds each) and delivers them over standard HTTP. This means HLS works through firewalls, CDNs, and load balancers without any special server configuration.

Key advantage: HLS uses regular HTTP/HTTPS — the same protocol as web pages. This is why it works everywhere MP4 files work, including proxies, CDNs, and corporate firewalls.

Understanding m3u8 Playlists

The core of any HLS stream is the .m3u8 playlist file — a plain-text index that tells the player where to find each video segment and what quality levels are available.

There are two types of m3u8 files:

A typical master playlist looks like this:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360
360p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3000000,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=8000000,RESOLUTION=1920x1080
1080p/index.m3u8

The player automatically switches between quality levels based on your available bandwidth — this is called Adaptive Bitrate Streaming (ABR).

How HLS Delivery Works

1. Encoding

Source video is encoded into multiple bitrates simultaneously using hardware or cloud encoders (FFmpeg, AWS MediaLive, etc.)

2. Segmentation

Each bitrate stream is split into small TS or fMP4 segments, typically 2–6 seconds. A new m3u8 playlist is generated every few seconds for live streams.

3. CDN Distribution

Segments are pushed to a Content Delivery Network (CDN) with edge nodes distributed globally. South African users typically hit Johannesburg or Cape Town PoPs.

4. Player Playback

The player fetches the master m3u8, selects a quality level, downloads segments sequentially, and buffers 15–30 seconds ahead for smooth playback.

HLS Bitrate Recommendations

ResolutionFrame RateH.264 BitrateH.265 BitrateAV1 Bitrate
480p (SD)30fps1.5–2.5 Mbps0.8–1.5 Mbps0.5–1.0 Mbps
720p (HD)30fps2.5–4 Mbps1.5–2.5 Mbps1.0–1.8 Mbps
1080p (FHD)30fps4–8 Mbps2–4 Mbps1.5–3 Mbps
1080p (FHD)60fps6–12 Mbps3–6 Mbps2–4 Mbps
4K UHD30fps15–25 Mbps8–15 Mbps5–10 Mbps

Testing HLS Streams

You can test any HLS stream directly in your browser using Reddisa's free Stream Tester. Simply paste your .m3u8 URL and click "Test Stream" to play the stream, view bitrate information, check codec support, and analyse adaptive quality switching.

Try it now: Go to Reddisa Stream Tester and paste any public .m3u8 URL to instantly test playback in your browser.

HLS vs MPEG-DASH

HLS and MPEG-DASH are both adaptive streaming protocols, but they have important differences:

FeatureHLSMPEG-DASH
OriginApple (2009)MPEG / ISO (2012)
Playlist format.m3u8 (text).mpd (XML)
Native iOS/Safari✅ Yes⚠ Limited
Codec flexibilityH.264, H.265, AV1Any codec
CDN supportExcellentExcellent
DRM supportFairPlayWidevine, PlayReady
HLSm3u8Adaptive Bitrate IPTVCDNVideo Streaming

Related Articles