Change the EXT-X-VERSION for HLS streaming from Wowza Streaming Engine

This article provides instructions for changing the EXT-X-VERSION information used by Wowza Streaming Engine™ media server software.

EXT-X-VERSION information indicates the playlist compatibility version for Apple HTTP Live Streaming (HLS). See the draft-pantos-http-live-streaming-09 specification for more information about the protocol.

By default, Wowza Streaming Engine reports an Apple HLS compatibility version of 3:

EXT-X-VERSION:3

To update the EXT-X-VERSION number that is reported, add the following property to <HTTPStreamer>/<Properties> in [install-dir]/conf/[application-name]/Application.xml:

<Property>
    <Name>cupertinoExtXVersion</Name>
    <Value>3</Value>
    <Type>Integer</Type>
</Property>

Wowza Streaming Engine can enable or disable playlist features based on the EXT-X-VERSION that's specified. The following features are controlled through the EXT-X-VERSION value:

  • Floating point duration – If the EXT-X-VERSION is 3 or greater, Wowza Streaming Engine represents chunk durations using floating point durations instead of whole integer durations.
  • Codecs format – If the EXT-X-VERSION is 4 or greater, Wowza Streaming Engine represents the codecs values in the playlist.m3u8 responses using the post-iOS 4.0 format (ex. avc1.42001e). If the value is less than 4, the pre-iOS 4.0 format (ex. avc1.66.30) is used.

Each of these features can be controlled indepently from the EXT-X-VERSION version using the following <HTTPStreamer>/<Properties>:

Floating point duration

<Property>
    <Name>cupertinoFloatingPointDurations</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>

Codecs format

<Property>
    <Name>cupertinoCodecStringFormatId</Name>
    <Value>2</Value>
    <Type>Integer</Type>
</Property>

Where the following values are supported:

  • 1 – Pre-iOS 4.0 (for example, avc1.66.30)
  • 2 – Post-iOS 4.0 (for example, avc1.42001e)