HLS Manifests Explained for FAST Channel Operators
What HLS (HTTP Live Streaming) is, how manifests work, what adaptive bitrate means for your viewers, and what FAST channel operators need to know about their HLS stream without getting a computer science degree.
HLS (HTTP Live Streaming) is the video delivery protocol that powers virtually every FAST channel. Your viewers receive HLS streams. Your SSAI system delivers ads via HLS. Your EPG is linked to your HLS output.
You don't need to understand every technical detail of HLS to run a FAST channel — your platform handles the implementation — but understanding the basics helps you debug problems, ask better questions, and make informed decisions about your content quality settings.
What HLS is
HLS is a protocol developed by Apple that breaks a video stream into small chunks (segments) and serves them over HTTP. Instead of sending one continuous video file, HLS sends a playlist file (the manifest) that tells the player where to get each segment, in order.
A basic HLS stream looks like this:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:1847
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1847.ts
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1848.ts
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1849.ts
Each #EXTINF tag is a 6-second segment. The player fetches them in sequence and stitches them together into a seamless video.
For a live/linear channel, this manifest is updated every few seconds. The player keeps polling for new segments. This is how your FAST channel delivers real-time content to viewers.
The master manifest vs. media playlists
An HLS stream typically has two levels of manifests:
Master manifest (also called "multi-variant playlist"): Lists the available quality levels (bitrate variants) for a stream. Looks like this:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=854x480
480p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080
1080p/index.m3u8
Media playlist: The per-quality segment list shown above.
The player requests the master manifest first, picks the appropriate quality based on network conditions, then requests the media playlist for that quality.
For FAST channels, your platform generates and maintains both. You don't hand-craft these files.
Adaptive bitrate streaming (ABR)
Adaptive bitrate (ABR) is the system that automatically adjusts video quality based on the viewer's internet connection speed. When a viewer on a slow connection watches your channel:
- The player requests the master manifest
- It starts with a lower bitrate (e.g., 480p at 800 Kbps)
- As the network improves, it switches up to 720p or 1080p
- If the network degrades, it switches back down
The viewer never has to manually select quality. The player switches seamlessly in the background.
Why this matters for you: Your source content quality sets the ceiling for your ABR ladder. If you upload a 480p source file, your channel can never deliver 1080p regardless of the viewer's connection speed. Always upload the highest quality source file you have.
Typical FAST ABR ladder:
| Variant | Resolution | Bitrate |
|---|---|---|
| Low | 426×240 | 400 Kbps |
| Medium | 854×480 | 800 Kbps |
| High | 1280×720 | 2500 Kbps |
| HD | 1920×1080 | 5000 Kbps |
Your platform transcodes your source content to all variants automatically.
Segment duration
Most FAST platforms use 2-6 second segments. Shorter segments:
- Lower latency (the viewer is closer to "live")
- More frequent HTTP requests (more overhead)
- Better for ad insertion (shorter segments = more precise ad break alignment)
Longer segments:
- Lower HTTP overhead
- Higher latency
- Simpler for VOD playout
For live FAST channels, 2-4 second segments are standard. For VOD content scheduled in a linear channel, 6-10 second segments are common.
How SSAI modifies the HLS manifest
When SSAI is active on your channel, the SSAI system sits between the player and your origin HLS manifest. It:
- Receives the player's manifest request
- Fetches the original content manifest from your playout engine
- Detects upcoming SCTE-35 ad break cues
- Fetches ad segments from your ad server (VAST response)
- Replaces the SCTE-35-marked content segments with ad segments
- Returns a modified manifest to the player
The player sees one seamless stream — it doesn't know whether it's watching content or an ad. This is why SSAI produces no buffering at ad breaks (unlike client-side ad insertion, where the player pauses and fetches a separate ad stream).
SCTE-35 in HLS manifests
SCTE-35 cue markers in an HLS manifest look like this:
#EXT-X-CUE-OUT:30.0
#EXTINF:2.0,
segment_ad_break_start.ts
#EXT-X-CUE-IN
#EXTINF:6.0,
segment_content_resumes.ts
#EXT-X-CUE-OUT:30.0— Signal that an ad break starts here, lasting 30 seconds#EXT-X-CUE-IN— Signal that the ad break ends, content resumes
Your FAST playout engine inserts these markers based on your configured ad break schedule. The SSAI system watches for them and triggers ad decisioning.
Checking your HLS stream
You can inspect your HLS manifest directly. Your channel's HLS URL ends in .m3u8. You can open it in a browser or use a tool like HLS.js demo to play it.
To check the manifest text, use curl:
curl "https://your-channel-hls-url.m3u8"
Common things to verify:
- All referenced segment URLs are accessible (return 200, not 404)
- Segment duration is consistent
- SCTE-35 markers appear at expected ad break times
- Audio and video tracks are present at all bitrate variants
What operators don't need to manage
If you're on a managed FAST platform like Vidiyo, you don't need to:
- Generate HLS manifests
- Manage CDN distribution
- Handle segment storage
- Configure bitrate ladders
- Write SCTE-35 markers
The platform handles all of this. Your job is to upload quality source content, build your schedule, and configure monetization.
What's next
Ready to launch your TV channel?
Vidiyo handles the infrastructure (HLS playout, SSAI, EPG, and cross-platform distribution) so you can focus on programming.
Start free. No credit card.