Streaming is available in most browsers,
and in the Developer app.
-
Authoring 4K and HDR HLS Streams
4K and HDR technologies enable the creation of amazing cinematic video experiences and stunning picture quality. Learn about how to support these new formats, and how to properly author your playlists to enable playback of these types of streams.
Resources
Related Videos
WWDC21
WWDC17
- Advances in HTTP Live Streaming
- Error Handling Best Practices for HTTP Live Streaming
- HLS Authoring Update
Tech Talks
WWDC16
-
Download
With the introduction of the revolutionary iPhone X and AppleTV 4K, the video playback experience is taken to a whole new level with the addition for support for high dynamic range and 4K video.
4K typically refers to frame sizes up to 3840 by 2160, offering an exceptionally detailed and high resolution image when compared to HD.
Wide color is supported across iOS, macOS, and tvOS, and the media frameworks support up to the rec 2020 color space, which covers about 75 percent of the visible spectrum.
The addition of support for HEVC enables the delivery of higher quality video at about a 40 percent lower bit rate compared to H.264. HDR video must be delivered using HEVC.
There are two HDR formats that we support: Dolby Vision and HDR10.
HDR10 utilizes static metadata that is applied to the entire program. This metadata should be in the HEVC configuration box and not stored in individual sample data.
For Dolby Vision content, we support Profile 5, which is single-layer, 10-bit HEVC, and up to level 7. For both HDR formats, the content must be encoded using HEVC. You should include HDR variants of less than or equal to 30 frames per second. And you must always provide SDR variants for both your primary media content as well as your I-frame playlists.
In order to help devices select compatible variants, we have added a new video range tag to the HLS specification. If you include any HDR variants in your playlist, you must include this tag. Declare SDR for any standard dynamic range variants and PQ for HDR10 or Dolby Vision variants. This tag is an advisory to the client so that it will not attempt to play streams that it cannot support.
In order to support HDCP TYPE-1 content protection, the new TYPE-1 value has been added to the HDCP level tag. This value is typically applied to content with a resolution of greater than 1920 by 1080. This tag is also advisory in nature and prevents the client from attempting to playback content that can't be supported by the currently attached display. To finish up, let's take a quick look at a few examples of how a playlist differentiates the different types of content and how the tags we just discussed are applied. This is an example of a standard dynamic range HEVC stream that does not require HDCP. This second example describes a 4K HDR stream as indicated by the PQ value of the "VIDEO-RANGE" tag. The "CODECS" tag describes it as a Dolby Vision stream, and the "HDCP-LEVEL" tag indicates that TYPE-1 will be required in order to successfully playback the stream. This 4K HDR10 example only differs from the Dolby Vision example by the "CODECS" tag. The "VIDEO-RANGE" and "HDCP-LEVEL" tags are the same.
For more information on HTTP live streaming, please visit devleoper.apple.com/streaming for access to the HLS authoring guide, HTTP live streaming tools including the stream validator, and samples of content that you can test in your own app.
-
-
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.