HLS troubleshooting
An HLS variant does not advertise bandwidth
An HLS variant declaration needs a BANDWIDTH value in bits per second. Use measured peak media rate when correcting your own playlist.
The missing attribute is on the variant declaration
In an HLS multivariant playlist, an EXT-X-STREAM-INF line declares a variant. The following URI identifies its media playlist. RFC 8216 requires BANDWIDTH on every such declaration. AVERAGE-BANDWIDTH can describe the average, but it does not supply the required peak value. A rendition can have valid segments and still fail discovery through an invalid variant declaration.
Look at the actual declaration and following line on a stream you operate or are permitted to inspect. A parser error before any media is requested calls for a playlist check first. A successful selection followed by stalling suggests that the value may be inaccurate, or that a later part of the delivery path failed.
Read the value in bits per second
Consider a single-playlist rendition made of four-second segments with a four-second target duration. One 1.8 MB decimal segment carries 14.4 megabits. Dividing by four seconds gives 3.6 Mbps, or 3,600,000 bits per second for that sample. If another eligible segment has a higher rate, it changes the peak. The specification also considers playable combinations of renditions when the variant uses separate tracks.
Use the packager’s actual output and the RFC definition rather than guessing from the resolution or copying the number from another stream. A variant with separate audio can exceed the video-only value.
| Field | Meaning |
|---|---|
| BANDWIDTH | Required integer peak rate in bits per second. |
| AVERAGE-BANDWIDTH | Optional integer average rate in bits per second. |
| Following URI | Media playlist to open for the variant. |
| EXTINF | Individual media segment duration in a media playlist. |
Verify variant discovery after the repair
- Correct the output in the source you operate or report the missing attribute to the stream publisher.
- Validate each variant and its following URI in the emitted playlist.
- Open the multivariant URL in an authorized player and confirm the expected quality choices. Test a lower and higher variant individually.
- If stalls continue, compare segment download timing and reported format. A valid declaration is only one part of playback.
Sources and further reading
- HLS format reference
- IETF HTTP Live Streaming specification · Playlist, segment and variant rules
- Apple HLS authoring specification · Multivariant playlists, renditions and content delivery