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.

FieldMeaning
BANDWIDTHRequired integer peak rate in bits per second.
AVERAGE-BANDWIDTHOptional integer average rate in bits per second.
Following URIMedia playlist to open for the variant.
EXTINFIndividual media segment duration in a media playlist.

Verify variant discovery after the repair

  1. Correct the output in the source you operate or report the missing attribute to the stream publisher.
  2. Validate each variant and its following URI in the emitted playlist.
  3. Open the multivariant URL in an authorized player and confirm the expected quality choices. Test a lower and higher variant individually.
  4. If stalls continue, compare segment download timing and reported format. A valid declaration is only one part of playback.

Sources and further reading