About the EXT-X-VERSION tag

Overview

The EXT-X-VERSION tag indicates the compatibility version of the Playlist file. This file, its associated media, and its server must comply with all provisions of the IETF Internet-Draft of "HTTP Live Streaming 2nd Edition" (or earlier specifications) describing the protocol version indicated by the tag value. A Playlist file that doesn't contain an EXT-X-VERSION tag must comply with version 1 of this protocol. Support for M3U8 Playlists was introduced with iOS 3.0, Mac OS X 10.6, and Safari 4.

Table 1

Protocol versions and features

EXT-X-VERSION

Features and usage notes

2

IV attribute of the EXT-X-KEY tag

3

Floating-point EXTINF duration values

4

EXT-X-BYTERANGE, EXT-X-I-FRAME-STREAM-INF, EXT-X-I-FRAMES-ONLY, EXT-X-MEDIA, the AUDIO and VIDEO attributes of the EXT-X-STREAM-INF tag

Older clients ignore backward-compatible features and will still play back the content in some form. Specify only the protocol version that's required for backward compatibility in a given feature. For example, you don't have to specify protocol vesion 5 if you've just added SUBTITLES.

The following features aren't backward compatible. Older clients may fail to play the content if you use these features but don't specify the protocol version where they were introduced:

You must use at least protocol version 2 if you have IV in EXT-X-KEY.

You must use at least protocol version 3 if you have floating point EXTINF duration values.

You must use at least protocol version 4 if you have EXT-X-BYTERANGE or EXT-X-IFRAME-ONLY.

You must use at least protocol version 5 if you specify the SAMPLE-AES encryption method in EXT-X-KEY, or if you have KEYFORMAT and KEYFORMATVERSIONS attributes in EXT-X-KEY, or if you have EXT-X-MAP.

You must use at least protocol version 6 if you have EXT-X-MAP in a Media Playlist that does not contain EXT-X-I-FRAMES-ONLY.

You must use at least protocol version 7 if you specify "SERVICE" values for the INSTREAM-ID attribute of EXT-X-MEDIA.

You must use at least protocol version 8 if you use variable substitution.

The following tables list the versions of specifications where specific features are described, along with the corresponding iOS release that supports those features.

Note

Over time, HLS has been described by three different documents: draft-pantos-http-live-streaming, RFC 8216, and now draft-pantos-hls-rfc8216bis.

Table 2

Version and features described in the draft-pantos-http-live-streaming spec