Key takeaways
- HLS uses an .m3u8 manifest to list video segments and quality levels.
- It is the native protocol for iOS, iPadOS, and Safari browsers.
- Adaptive bitrate switching happens by changing the segment URL, not the stream.
- Flicknexs delivers HLS with AES encryption and DRM at the delivery layer.
How HLS works
HLS breaks a video into short segments, typically 2 to 10 seconds long. Each segment is a separate file, usually in MPEG-2 TS or fMP4 format. The player requests a master playlist file, which has the extension .m3u8. This file lists the available quality levels, such as 360p, 720p, and 1080p. Each quality level points to its own media playlist. That media playlist lists the specific segment files in order.
When you play a video, the player downloads the first segment. It then checks the network speed. If the connection is slow, the player requests the next segment from a lower quality playlist. If the connection is fast, it switches to a higher quality playlist. This process happens automatically. The user sees a smooth video without buffering, even if their internet speed fluctuates.
The protocol relies on standard HTTP. This means it works through firewalls and proxies that block other streaming protocols. Because it uses HTTP, you can serve it from any web server or CDN. The player handles the complexity of switching streams. You handle the encoding and packaging.
Why HLS matters for a streaming business
If you ignore HLS, you lose a large portion of your potential audience. iOS devices and Safari browsers require it for native playback. Even on Android, many players support HLS as a fallback. It is the safest choice for cross-platform compatibility.
For operators, HLS simplifies delivery. You do not need to build custom logic for quality switching. The protocol handles it. This reduces development time and lowers the risk of playback errors. It also integrates easily with content delivery networks. Most CDNs cache HLS segments efficiently, which reduces your bandwidth costs.
Security is another key factor. HLS supports AES-128 encryption. You can encrypt your segments so only authorized players can decode them. Flicknexs applies this encryption at the delivery layer. You can also use signed URLs to prevent unauthorized access. This protects your content from piracy and hotlinking. Choosing HLS gives you a reliable, secure, and widely supported foundation for your streaming service.
HLS vs MPEG-DASH
HLS and MPEG-DASH are both adaptive streaming protocols. They solve the same problem but use different file structures. HLS uses .m3u8 playlists and MPEG-2 TS or fMP4 segments. DASH uses .mpd manifests and fMP4 segments. DASH is an open standard, while HLS is an Apple standard.
HLS has broader support on mobile devices, especially iOS. DASH is more common on desktop browsers and smart TVs that do not support Apple standards. Many platforms now support both. You can deliver the same content in both formats to maximize reach.
| Feature | HLS | MPEG-DASH |
|---|---|---|
| Manifest File | .m3u8 | .mpd |
| Segment Format | TS or fMP4 | fMP4 |
| iOS Support | Native | Requires JS player |
| Browser Support | Safari, Chrome | Chrome, Firefox, Edge |
| Standardization | Apple | ISO/ITU |
Most operators use CMAF to package content once and serve both HLS and DASH. This saves encoding time and storage space.
Common mistakes with HLS
Operators often make errors that degrade the viewing experience. Here are the most common ones:
- Ignoring encryption: Serving unencrypted HLS segments makes content easy to download. Always use AES-128 or DRM.
- Poor segment duration: Segments that are too long cause slow quality switching. Segments that are too short increase HTTP overhead. Aim for 2 to 6 seconds.
- Missing media playlists: If the master playlist points to a broken media playlist, the player fails. Test all quality levels.
- Not using a CDN: Serving HLS directly from your origin server will cause buffering under load. Use a CDN to cache segments.
- Overlooking signed URLs: Without signed URLs, anyone who finds the .m3u8 file can stream your content for free.
How Flicknexs handles HLS
Flicknexs delivers video using adaptive bitrate transcoding with 1080p as the standard resolution. The platform packages content into HLS streams with AES encrypted segments. You can enable DRM at the delivery layer for added security. Playback URLs are signed and expire after a set time, which helps prevent unauthorized access. The system supports multi-audio tracks and caption file uploads directly in the video CMS. This setup works across web, iOS, Android, and smart TV apps. For a deeper look at how playback is managed across devices, check out the Video player SDK.
Done reading about HLS?
Flicknexs ships it as part of a white-label streaming platform: web, mobile and TV apps, billing, ads, DRM and playout, on your own domain.