Applies to: Protocol and format interpretation for developers inspecting authorized media delivery.

The useful distinctions

  • EXT-X-STREAM-INF describes a variant stream.
  • Its following URI identifies a media playlist.
  • BANDWIDTH and CODECS describe different properties.

Make one row per variant

Read each STREAM-INF line together with the URI immediately following it. For the invented pair, a compact inventory has separate columns for the media-playlist reference, declared bandwidth, dimensions, and codec string. Do not derive one column from another. A larger picture can be offered at many encoded rates, and a bandwidth declaration alone does not identify the codec or its decoding requirements.

Treat the inventory as a set of claims

The declarations help a client reason about offered alternatives, but the text is not a measurement of segment sizes or proof of device support. A publishing review needs the corresponding media before checking whether the claims match reality. The example deliberately uses two distinct paths and a shared codec family, so the difference being illustrated is easy to see. It does not assert an optimal bitrate ladder or predict a player's choice. If explaining a real inventory, retain every declared value as supplied and mark absent attributes as absent. Filling in plausible defaults would blur the line between the manifest and the investigator's assumptions, making later comparison against the actual tracks less reliable. The two rows also need separate validation outcomes. Confirming the lower variant's declarations would not validate the higher variant merely because both entries share a codec family and appear in one multivariant file.

Worked example · synthetic

There are two variant entries, not two sequential media segments. Each URI is associated with the STREAM-INF directly before it; codec strings are declarations about referenced media.

Synthetic text example; no network operation has been performed.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=900000,RESOLUTION=640x360,CODECS="avc1.4d401e,mp4a.40.2"
low/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
high/index.m3u8

Check the interpretation

  • Pair each entry with its following URI.
  • Keep rate and dimensions in separate columns.
  • Verify codec declarations against actual track metadata before claiming conformance.