What's new in HTTP Live
Streaming
WWDC 2024
June 2024

Contents

HLS Specification

3

New Interstitial EXT-X-DATERANGE attributes .......................................................................................................3
Media Formats and Tools

3

Signaling HDR10+ content ........................................................................................................................................3
AV1 support for DV 10.x .............................................................................................................................................4
Enhancements to metadata support in HLS ............................................................................................................4
Metrics and Logging

4

AVMetrics API .............................................................................................................................................................4
AVPlayerItemErrorLogEvent addition .......................................................................................................................4
Common Media Client Data.......................................................................................................................................4
Deprecations

5

Deprecating AVAssetResourceLoader for key loading ...........................................................................................5

What's new in HLS 2024

June 2024

2

HLS Specification

The most recent specification of HTTP Live Streaming is RFC 8216. That document was published inAugust 2017. A more up-to-date reference is the current Internet-Draft draft-pantos-hls-rfc8216bis "HTTP
Live Streaming 2nd Edition".

The URL https://developer.apple.com/streaming/ contains links to the above documents as well as apreliminary version of the next update to the Internet-Draft.

New Interstitial EXT-X-DATERANGE attributes
Three new attributes are recognized on Interstitial EXT-X-DATERANGE tags. These all take quoted-stringvalues, but only have a couple of valid strings. These attributes are described more formally in thepreliminary internet-Draft mentioned above.

The first is X-CONTENT-MAY-VARY, which may have the value "YES" or "NO". This is used as a hint to letclients know how coordinated playback of the same asset will behave across multiple players (such as
Apple’s SharePlay). A value of "NO" indicates all players will get the same interstitial content. If XCONTENT-MAY-VARY is missing it is considered to have a value of "YES".

The other two attributes indicate how the interstitial content should be represented on a playback timeline.
One attribute is X-TIMELINE-OCCUPIES, which may have the value "POINT" or "RANGE". This indicates

whether the interstitial should be presented as a single point on the timeline or as a range. If X-TIMELINE-

OCCUPIES is missing it is considered to have a value of "POINT" (which is typical for VOD presentations),

although clients may infer a value of "RANGE" if the interstitial has positive non-zero resumption offset. We
expect the most common use for RANGE to be ads in live content.

The other attribute is X-TIMELINE-STYLE, which may have the value "HIGHLIGHT" or "PRIMARY". Thisindicates whether the interstitial is intended to be presented as distinct from the content ("HIGHLIGHT") ornot differentiated ("PRIMARY"). If X-TIMELINE-STYLE is missing it is considered to have a value of"HIGHLIGHT". (This is typical for ads. We expect the most common use for PRIMARY to be ratings bumpers
and post-roll content like dub cards.)

Media Formats and Tools

Apple distributes several tools for segmenting and validating HLS streams. These are available from theApple developer downloads site. A link is available at the URL above.

The tools are updated several times per year and are provided for macOS and Linux systems.

Signaling HDR10+ content
Within a Multivariant Playlist the codec is signaled via a format in the CODECS attribute. There is no way tosignal HDR10+ in a format. To indicate that your content includes HDR10+ video, supply aSUPPLEMENTAL-CODECS attribute containing the appropriate format and brand (separated by a slashcharacter). The format should match the HDR10 format. The correct brand for HDR10+ is 'cdm4'. Forexample, SUPPLEMENTAL-CODECS="hvc1.2.20000000.L123.B0/cdm4".
What's new in HLS 2024

June 2024

3

AV1 support for DV 10.x
Some devices support Dolby Vision profile 10. The supported profiles are 10, 10.1 and 10.4. If the profile is10.1 or 10.4, this must be indicated using a SUPPLEMENTAL-CODECS attribute with the appropriate brandas well as the correct VIDEO-RANGE. In the case of 10.1 this should be a brand of 'db1p' and a VIDEORANGE of PQ. For 10.4 this should be a brand of 'db4h' and a VIDEO-RANGE of HLG. For example,

CODECS="av01.0.13M.10.0.112",SUPPLEMENTAL-CODECS="dav1.10.09/db4h",VIDEORANGE=HLG.

Enhancements to metadata support in HLS
Fragmented MP4 (MPEG-4) files can contain timed metadata ('mebx') tracks. Previously, the player

supported a single concurrent metadata track with the audio and video. Now multiple concurrent metadata
tracks are handled.

However, the current mediafilesegmenter tool only supports mebx tracks using certain keys. For example,
the key com.apple.quicktime.video.parallax-coverage.measured (video contour mapmetadata). The tracks must be associated with an audio or video track, via a TrackReferenceTypeBox oftype 'cdsc'.

Metrics and Logging
AVMetrics API
This is a new AVFoundation API that allows developers to register for and listen to performance andplayback events. This is an opt-in interface. The subscriber will receive various AVMetricEvent subclassobjects. The subscriber can elect to receive only subset of possible events. For more information, see theAVFoundation documentation.

AVPlayerItemErrorLogEvent addition
Developer who subscribe to AVPlayerItemErrorLogEvent can now receive all the HTTPResponse header
fields as an NSDictionary.

Common Media Client Data
AVPlayer now supports the Common Media Client Data (CMCD) standard. This is a specification defined bythe Consumer Technology Association as part of their WAVE project.

CMCD enables players to send information to Content Delivery Networks (CDNs) with each object request.
This allows the the CDN to do Quality of Service (QoS) monitoring and delivery optimization. While thestandard allows three different modes for transmitting the data, AVPlayer uses only the preferred mode - as
HTTP request headers.

What's new in HLS 2024

June 2024

4AVPlayer implements most of the keys. The keys content ID ('cid'), requested maximum throughput ('rtp'),
and top bitrate ('tb') are not supported. One extension is included. The streaming format key ('sf') will
return the value 'lh' for a LL-HLS stream rather than 'h' (HLS).
Clients can opt-in to sending CMCD by setting

urlAsset.resourceLoader.sendsCommonMediaClientDataAsHTTPHeaders = true

Deprecations
Deprecating AVAssetResourceLoader for key loading
AVAssetResourceLoader based key loading is no longer supported. You must transition toAVContentKeySession.

AVContentKeySession has been available for many releases and provides a more flexible, reliable andfeature-rich mechanism for loading content keys than AVAssetResourceLoader.

What's new in HLS 2024

June 20245