HLS variant is missing the CODECS attribute
Without CODECS, players must download a segment before they can tell whether they can play the rendition at all.
What it means
One or more EXT-X-STREAM-INF tags omit CODECS, so the master playlist does not say what is inside each variant.
Why it matters
Players use CODECS to filter the ladder to renditions the device can decode, before requesting any media. Without it, a device may select a rendition it cannot play, fail, and fall back — adding seconds to start-up — or reject the variant entirely. On HEVC or Dolby ladders this routinely means the wrong rendition plays.
How to fix it
- Add a CODECS attribute with the RFC 6381 identifiers for every stream in the variant, for example CODECS="avc1.64001f,mp4a.40.2".
- Include the audio codec too, not just video, when the variant is muxed.
Check your own stream
The free HLS analyzer runs this check on every analysis and links each finding straight back here.
Open the HLS analyzer →Frequently asked questions
- What does "HLS variant is missing the CODECS attribute" mean?
- One or more EXT-X-STREAM-INF tags omit CODECS, so the master playlist does not say what is inside each variant.
- Why does it matter?
- Players use CODECS to filter the ladder to renditions the device can decode, before requesting any media. Without it, a device may select a rendition it cannot play, fail, and fall back — adding seconds to start-up — or reject the variant entirely. On HEVC or Dolby ladders this routinely means the wrong rendition plays.
- How do I fix it?
- 1. Add a CODECS attribute with the RFC 6381 identifiers for every stream in the variant, for example CODECS="avc1.64001f,mp4a.40.2". 2. Include the audio codec too, not just video, when the variant is muxed.
- How can I detect this automatically?
- Paste your HLS streaming URL into StreamTest's free HLS analyzer. It runs this check on every analysis, flags the finding, and links straight back to this page — no sign-up required.
Related HLS checks
- HLS ladder has a bitrate inversionA lower-resolution variant is allocated more bandwidth than a higher-resolution one, so adaptive switching picks the wrong rendition.
- HLS variant references an undeclared rendition groupA variant points at an AUDIO or SUBTITLES group that has no matching EXT-X-MEDIA entry, which breaks playback on strict players.
- HLS segment is longer than EXT-X-TARGETDURATIONA segment rounds to more than the declared target duration, which violates the HLS specification.
- HLS live window is shorter than three target durationsThe playlist holds too little content, so any player that falls slightly behind runs off the end of the window.
- HLS playlist has no EXT-X-PROGRAM-DATE-TIMEWithout program date-time the stream cannot be mapped to wall-clock time, which breaks DVR seeking and multi-stream alignment.
- HLS live edge has drifted from wall-clock timeThe newest segment’s program date-time is far from the current time, meaning the playlist is stale or the clocks disagree.