Article

HLS Authoring Specification for Apple Devices

Describes the requirements for live and VOD audio-video content delivery using HTTP Live Streaming (HLS) to Apple devices.

Overview

For a deeper discussion of the features available in HLS, please refer to Apple’s streaming resource page at http://developer.apple.com/streaming/, which contains pointers to the overview document, the HLS specification, technical notes, FAQs, presentations, and examples.

About HLS Authoring

The HLS specification is a published RFC [RFC8216]. However, HLS continues to evolve, so there is an updated draft specification - draft-pantos-hls-rfc8216bis [HLS2]. This document always uses the most recent version of the draft standard.

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Find additional information for HTTP Live Streaming Specifications here: HLS Authoring Specification for Apple Devices Appendices.

General Authoring Requirements

A stream that matches these requirements should be compatible with iOS, tvOS, or macOS.

Video

1. Video encoding requirements

1.1. All video MUST be encoded using H.264/AVC or HEVC/H.265.

1.2. The container format for H.264 video MUST be fragmented MP4 (fMP4) files or MPEG transport streams.

1.3. Profile and Level for H.264 MUST be less than or equal to High Profile, Level 4.2.

1.4. For H.264 you SHOULD use High Profile in preference to Main or Baseline Profile.

1.5. The container format for HEVC video MUST be fMP4.

1.6. Profile, Level, and Tier for HEVC MUST be less than or equal to Main10 Profile, Level 5.0, High Tier.

1.7. High Dynamic Range (HDR) HEVC video MUST be HDR10 or DolbyVision.

1.8. For HDR10 video, the SEI NAL units (i.e. static metadata) SHOULD be in the HEVC Configuration Box (‘hvcC’) and not in the individual sample data.

1.9. Profile and Level for Dolby Vision MUST be Profile 5 (single layer 10-bit HEVC) and less than or equal to Level 7.

1.10. You SHOULD use video formats in which the parameter sets are stored in the sample descriptions, rather than the samples. (i.e., Use ‘avc1’, ‘hvc1’, or ‘dvh1’ rather than ‘avc3’, ‘hev1’, or ‘dvhe’.)

1.11. For backward compatibility, content SHOULD NOT use a higher level than required by the content resolution and frame rate.

1.12. For backward compatibility, some video content SHOULD be encoded with H.264.

1.13. Key frames (IDRs) SHOULD be present every two seconds.

1.14. All interlaced source content MUST be de-interlaced.

1.15. You SHOULD de-interlace 30i content to 60p instead of 30p.

1.16. Live/linear video from NTSC or ATSC source SHOULD be 60 or 59.94 fps.

1.17. Live/linear video from PAL source SHOULD be 50 fps.

1.18. VOD content SHOULD use a natural frame rate for the content. Any of the typical frame rates: 23.976, 24, 25, 29.97, 30, 50, 59.94, and 60 fps are supported.

1.19. Frame rates above 60 fps SHALL NOT be used.

1.20. For HDR content, frame rates less than or equal to 30 fps SHOULD be provided.

1.21. Streams SHOULD use a single color space: one of either Rec. 601, Rec. 709, DCI-P3, or Rec. 2020.

1.22. For VOD, the color space SHOULD be the original color space of the material.

1.23. If multiple video streams are provided (H.264, HEVC, HDR), then each stream SHOULD provide all anticipated bandwidths. Clients SHOULD NOT be required to switch codecs.

1.24. For backward compatibility, SDR streams MUST be provided. (See also item 6.16)

1.25. There are many possible choices of bit rates for variants. The following tables provide one possible set of bit rate variants. (See On bit rates for variants for additional considerations.):

Table 2

Video average bit rate (kb/s) table 1

16:9 aspect ratio

H.264/AVC

Frame rate

416 x 234

145

≤ 30 fps

640 x 360

365

≤ 30 fps

768 x 432

730

≤ 30 fps

768 x 432

1100

≤ 30 fps

960 x 540

2000

same as source

1280 x 720

3000

same as source

1280 x 720

4500

same as source

1920 x 1080

6000

same as source

1920 x 1080

7800

same as source

Table 3

Video average bit rate (kb/s) table 2

16:9 aspect ratio

HEVC/H.265 30 fps

HDR (HEVC) 30 fps

Frame rate

640 x 360

145

160

≤ 30 fps

768 x 432

300

360

≤ 30 fps

960 x 540

600

730

≤ 30 fps

960 x 540

900

1090

≤ 30 fps

960 x 540

1600

1930

same as source

1280 x 720

2400

2900

same as source

1280 x 720

3400

3850

same as source

1920 x 1080

4500

5400

same as source

1920 x 1080

5800

7000

same as source

2560 x 1440

8100

9700

same as source

3840 x 2160

11600

13900

same as source

3840 x 2160

16800

20000

same as source

1.26. For VOD content, the average segment bit rate MUST be within 10% of the AVERAGE-BANDWIDTH attribute. (See Declared versus measured values of bandwidths.)

1.27. For VOD content, the measured peak bit rate MUST be within 10% of the BANDWIDTH attribute.

1.28. For live/linear content, the average segment bit rate over a long (~1 hour) period of time MUST be less than 110% of the AVERAGE-BANDWIDTH attribute.

1.29. For live/linear content, the measured peak bit rate MUST be less than 125% of the BANDWIDTH attribute.

1.30. For VOD content the peak bit rate SHOULD be no more than 200% of the average bit rate.

1.31. Different variants MAY have different frame rates.

1.32. The default video variant(s) SHOULD be the 2000 kb/s (average bit rate) variant. (Defaults are the first variant listed in the master playlist within a group of variants having compatible audio.)

1.33. All video variants SHOULD have identical aspect ratios.

Audio

2. Audio encoding requirements

2.1. Audio data SHOULD be provided as an elementary audio stream or in fMP4.

2.2. Stereo audio formats are:

  • AAC-LC

  • HE-AAC v1

  • HE-AAC v2

  • Multichannel formats that only carry stereo

2.3. Stereo audio in some AAC format MUST be provided.

2.4. You SHOULD NOT use HE-AAC if your audio bit rate is above 64 kb/s.

2.5. Supported multichannel audio formats are:

  • Dolby Digital (AC-3)

  • Dolby Digital Plus (E-AC-3)

  • Dolby Digital Plus with Dolby Atmos

2.6. If Dolby Digital Plus is provided and your streams are delivered to devices that do not support Dolby Digital Plus then Dolby Digital MUST be provided also. See Audio Compatibility.

2.7. Stereo audio MAY be provided at multiple bit rates

2.8. Multichannel audio MUST be provided at a single bit rate. (For example, don’t provide Dolby Digital 5.1 at two bit rates, but you may provide Dolby Digital 5.1 and Dolby Digital Plus 5.1.)

2.9. Overall bit rate recommendations are as follows:

Audio channels

Format

Total (kb/s)

2.0 (stereo)

AAC

32 to 160

2.0 (stereo)

Dolby Digital Plus

96 to 160

5.1 (surround)

Dolby Digital

384

5.1 (surround)

Dolby Digital Plus

192

7.1 (surround)

Dolby Digital Plus

384

Nominally 16

Dolby Digital Plus with Dolby Atmos

384 to 768

2.10. You MAY change channel layout within a stream.

2.11. Channel layout changes MUST be in conjunction with an EXT-X-DISCONTINUITY tag.

2.12. If you provide Descriptive Video Service (DVS), also called Audio Description, it MUST be marked with the attribute CHARACTERISTICS="public.accessibility.describes-video".

2.13. If you provide DVS, the AUTOSELECT attribute MUST have a value of “YES”.

2.14. The name of DVS audio SHOULD indicate that the stream is DVS content.

2.15. If you provide alternate audio or DVS, you MUST provide it for the entire content duration even if it only really exists for a portion of the main content.

2.16. Alternate audio or DVS MAY reuse the audio segments of regular content when the alternate content is not available.

2.17. A single media segment MUST NOT contain multiple audio streams.

2.18. Loudness management/Dynamic Range Control SHOULD be present unless all content (including ads) has been encoded at the same audio levels.

2.19. Dolby Digital and Dolby Digital Plus loudness SHOULD be specified by the dialnorm field (ATSC A/52:2012). 

2.20. AAC dialog loudness SHOULD be specified by either AAC prog_ref_level (ISO 14496-3 sub-clause 4.5.2.7), as specified by SCTE 193-1 section 7.4.1; OR by the loudnessInfo() payload as specified by ISO 23003-4, in which case samplePeakLevel or truePeakLevel MUST be present, measurementSystem MUST be 2, and methodDefinition MUST be 1 or 2.

2.21. HE-AAC in fMP4 files MUST use explicit signaling of SBR data.

Ads and Pre-/Mid-/Post-Rolls

3. Ad requirements (see also Media Playlists section)

3.1. Your ads and other inserted media SHOULD be included in the media playlists.

3.2. Inserted media SHOULD be encoded with the same codecs as the other content in the Media Playlist.

3.3. Inserted media SHOULD be encoded with the same aspect ratio as the other content in the Media Playlist.

3.4. Inserted media SHOULD be at or under the specified bandwidths for that variant.

Accessibility

4. Accessibility requirements

4.1. Captions SHOULD be provided with your streams to make content accessible to the deaf or hard of hearing.

4.2. Supported caption formats are:

  • CEA-608 closed captions

  • CEA-708 closed captions

  • WebVTT subtitles

  • IMSC1 subtitles (text profile only)

4.3. Closed captions (if any) MUST be included in the video media segments.

4.4. The presence of closed captions MUST be declared via an EXT-X-MEDIA tag that contains a LANGUAGE attribute.

4.5. If a subtitles track is intended to provide accessibility for the deaf and hard of hearing it MUST be marked with the attribute CHARACTERISTICS="public.accessibility.describes-music-and-sound". (Subtitles with this attribute value are treated the same as closed captions.)

4.6. If a subtitles track is intended to provide accessibility for the deaf and hard of hearing the AUTOSELECT attribute MUST have a value of “YES”.

4.7. The LANGUAGE attribute MUST be included in the EXT-X-MEDIA tag for a subtitles track.

4.8. For information on including Audio Descriptions with your streams, see items 2.12 through 2.16.

Subtitles

5. Subtitle requirements

5.1. Subtitles MAY be provided.

5.2. Subtitles MUST be WebVTT (according to the HLS specification) or IMSC1 in fMP4.

5.3. WebVTT subtitles MUST be in text files, with an X-TIMESTAMP-MAP according to the HLS specification.

5.4. IMSC1 subtitles MUST be in fMP4 files.

5.5. The subtitle playlist MUST exist for the entirety of the main content, even if the actual subtitles only exist for a portion of the content.

5.6. For live/linear content, target durations for subtitle playlists MUST be identical to other media.

5.7. For VOD content, target durations of subtitle playlists MAY be longer than the other media.

5.8. If the content has forced subtitles and regular subtitles in a given language, the regular subtitles track in that language MUST contain both the forced subtitles and the regular subtitles for that language.

5.9. If your videos contain text burnt into the video and you have access to a version without the burn-in, you SHOULD use Forced Subtitles instead. (This allows you to easily translate into multiple languages. An example of when you might use forced subtitles is a science fiction film, where alien languages are translated into English.)

5.10. The kind of subtitles SHOULD be specified in the CODECS attribute of the associated EXT-X-STREAM-INF tags. You SHOULD use “stpp.ttml.im1t” to identify IMSC1 subtitles. You MAY use “wvtt" to identify WebVTT subtitles.

5.11. Forced subtitles SHOULD always have AUTOSELECT=YES.

Trick Play

6. Trick play requirements

6.1. I-frame playlists (EXT-X-I-FRAME-STREAM-INF) MUST be provided to support scrubbing and scanning UI.

6.2. You SHOULD have one frame per second “dense” I-frame renditions. These are dedicated renditions that only contain I-frames.

6.3. Alternatively, you MAY use the I-frames from your normal content, but trick play performance is improved with a higher density of I-frames.

6.4. If you provide multiple bit rates at the same spatial resolution for your regular video then you SHOULD create the I-frame playlist for that resolution from the same source used for the lowest bit rate in that group.

6.5. The bit rate of I-frame playlists SHOULD be the bit rate of a normal playlist of the same resolution times the fps of the I-frame playlist divided by eight. (See I-frame bit rates versus normal bit rates.)

6.6. You SHOULD provide multiple I-frame Media Playlists with different bit rates.

6.7. As with normal video, there are many possible choices of bit rates for dense I-frame variants. The following tables provide one possible set of variants. (See On bit rates for variants.):

Table 5

Trick play average video bit rate (kb/s) table 1

16:9 aspect ratio

H.264/AVC

640 x 360

45

768 x 432

90

960 x 540

250

1280 x 720

375

1920 x 1080

580

16:9 aspect ratio

HEVC/H.265

HDR (HEVC)

768 x 432

40

55

960 x 540

75

94

960 x 540

200

238

1280 x 720

300

360

1920 x 1080

525

650

6.8. I-frame playlists MUST contain the EXT-X-I-FRAMES-ONLY tag.

6.9. The peak segment bit rate MUST be calculated according to the HLS specification.

6.10. If using fMP4, I-frame segments MUST include the 'moof' header associated with the I-frame.

6.11. For live/linear content, target durations for I-frame playlists MUST be identical to other media.

6.12. For VOD content, target durations of I-frame playlists MAY be different from the other media.

6.13. I-frame playlists MAY use a different video codec than the normal video segments.

6.14. For backward compatibility, some trick play content SHOULD be encoded with H.264.

6.15. If HDR trick play streams are provided, then they SHOULD be provided at all resolutions.

6.16. For backward compatibility, SDR trick play streams MUST be provided.

Media Segmentation

7. Media segmentation requirements

7.1. Your media MUST be continuous across segments, with the exception of transitions for ads and other inserted material.

7.2. If using a transport stream, continuity counters and timestamps MUST be sequential.

7.3. If using fMP4, the track fragment decode time MUST be consistent with the decode time and duration of the previous segment.

7.4. Video segments MUST start with an IDR frame.

7.5. Target durations SHOULD be 6 seconds.

7.6. Segment durations SHOULD be nominally 6 seconds (e.g., NTSC 29.97 may be 6.006 seconds).

7.7. Media segments MUST NOT exceed the target duration by more than 0.5 seconds.

Media Playlists

8. Media playlist requirements

8.1. You MUST use sufficiently accurate segment durations to ensure that the sum of the EXTINF durations of any contiguous group of segments is within one video frame duration of the actual duration of the content.

8.2. Audio and video playlists MUST all use the same target duration.

8.3. Audio and video playlists MUST contain the same duration of the content.

8.4. The EXT-X-PROGRAM-DATE-TIME tag MUST be present in every live/linear media playlist.

8.5. The date-time value of an EXT-X-PROGRAM-DATE-TIME tag SHOULD be aligned with the airtime of the content.

8.6. If your media playlists are created from static source content (VOD), you MUST add the EXT-X-PLAYLIST-TYPE with the value VOD.

8.7. Within one asset, all media playlists with an EXT-X-PLAYLIST-TYPE of VOD MUST cover exactly the same media time range.

8.8. If your media playlists are event style (start from a fixed point with segments never removed), you MUST add the EXT-X-PLAYLIST-TYPE with the value EVENT.

8.9. Separate audio streams MUST be declared using EXT-X-MEDIA tags.

8.10. The LANGUAGE attribute MUST be included in every EXT-X-MEDIA tag that does not have TYPE=VIDEO.

8.11. You MUST provide at least 6 segments in a live/linear playlist.

8.12. You SHOULD provide at least 15 minutes of content in a live/linear playlist.

8.13. Breaks of encoding continuity MUST be indicated with the EXT-X-DISCONTINUITY tag.

8.14. Video frame rate changes MUST be marked as a discontinuity using EXT-X-DISCONTINUITY tags.

8.15. All variants and renditions MUST have discontinuities at the same points in time.

8.16. You SHOULD avoid switching codecs at discontinuities. For example, switching between HEVC and H.264, or between AAC and Dolby Digital.

8.17. If live/linear content will ever contain an EXT-X-DISCONTINUITY tag then the EXT-X-DISCONTINUITY-SEQUENCE tag MUST always be present.

8.18. Your media requests MUST NOT use HTTP redirects, with the exception of ad content to allow dynamic selection of ads.

8.19. You SHOULD identify interstitial and program boundaries using the EXT-X-DATERANGE tag.

8.20. If using fMP4, EXT-X-MAP tags MUST be present.

8.21. Metadata SHOULD be in the playlist (using EXT-X-DATERANGE) rather than in the media (using Timed Metadata).

8.22. For maximum interoperability, all audio/video variants and renditions SHOULD have segment boundaries at the same points in time.

Master Playlist

9. Master playlist requirements

9.1. Your EXT-X-STREAM-INF tag MUST always provide the CODECS attribute.

9.2. Your EXT-X-STREAM-INF tag MUST always provide the RESOLUTION attribute if the rendition(s) include video.

9.3. Your EXT-X-I-FRAME-STREAM-INF tag MUST always provide the CODECS attribute.

9.4. Your EXT-X-I-FRAME-STREAM-INF tag MUST always provide the RESOLUTION attribute.

9.5. You SHOULD deliver video and audio as separate streams.

9.6. If you have multichannel audio, you MUST use separate audio streams.

9.7. If you have alternate audio content (languages/commentary/DVS), you MUST use separate audio streams.

9.8. If you have different video angles, you MUST use separate audio streams.

9.9. You MUST provide multiple bit rates of video (aka variants).

9.10. For HD content, there SHOULD be at least two variants encoded at the highest-available resolution.

9.11. If your video segments start with an IDR then you SHOULD use the EXT-X-INDEPENDENT-SEGMENTS tag in the master playlist. (See item 7.4.)

9.12. If your video segments start with an IDR and the EXT-X-INDEPENDENT-SEGMENTS tag is not in the master playlist, then you MUST use the EXT-X-INDEPENDENT-SEGMENTS tag in all video media playlists. (See item 7.4.)

9.13. The BANDWIDTH attribute MUST be the largest sum of peak segment bit rates that is produced by any playable combination of renditions.

9.14. You MUST include the AVERAGE-BANDWIDTH attribute.

9.15. Each EXT-X-STREAM-INF tag MUST have a FRAME-RATE attribute.

9.16. The VIDEO-RANGE attribute MUST be specified unless all variants and renditions are SDR.

Delivery

10. Delivery requirements

10.1. The server MUST deliver playlists using gzip content-encoding.

10.2. You SHOULD support stream failover, for example by listing duplicate streams in the Master Playlist.

10.3. Media data SHOULD NOT be delivered to the application through a local server.

10.4. You SHOULD use the recommended MIME types for content. The recommendations are in the following table:

Media type

Format

Recommended MIME type

Typical file extension

Playlist

HLS playlist

application/vnd.apple.mpegurl

m3u8

Playlist

M3U playlist

audio/mpegurl

m3u

Video

MPEG transport stream

video/mp2t

ts

Video

Fragmented MP4

video/mp4

mp4

Audio

MPEG transport stream

video/mp2t

ts

Audio

Fragmented MP4

audio/mp4

mp4

Audio

Packed audio

audio/aac

aac

Audio

Packed audio

audio/mpeg

mp3

Audio

Packed audio

audio/ac3

ac3

Audio

Packed audio

audio/eac3

ec3

Subtitles

WebVTT

text/plain

vtt

Subtitles

IMSC1

application/mp4

mp4

Privacy

11. Privacy requirements

11.1. Master playlists SHOULD be delivered using Transport Layer Security (TLS).

11.2. Media playlists SHOULD be delivered using TLS.

11.3. Media Segments SHOULD be delivered using TLS.

11.4. Media Segment URLs requested over unencrypted transport SHOULD NOT contain revealing strings such as movie title, show title, episode name, episode number, genre, advertiser, or product.

Security

12. Security requirements

12.1. Transport Layer Security (TLS) MUST be version 1.2 with forward security.

12.2. TLS MUST NOT use known-insecure cryptographic primitives (e.g., RC4 encryption, SHA-1 certificate signatures).

12.3. Within TLS, key sizes MUST be 2048 bits for RSA and 256 bits for EC.

12.4. The URLs for Media Segments SHOULD not be completely static. URLs should be issued per device or changed over time.

Content Protection

13. Content protection requirements

13.1. Content protection of video and audio SHOULD follow the FairPlay Streaming (FPS) specification.

13.2. If the content is encrypted with FPS the method MUST be SAMPLE-AES.

13.3. If the content is encrypted with FPS  the key format MUST be "com.apple.streamingkeydelivery".

13.4. The IV attribute SHOULD NOT be used with FPS unless necessary for interoperability.

13.5. Content with HD resolutions SHOULD use HDCP-LEVEL of TYPE-0.

13.6. Content with greater than HD resolutions SHOULD use HDCP-LEVEL of TYPE-1.

13.7. Video encrypted with Common Encryption MUST use an encrypt:skip pattern of 1:9 (10% partial encryption).

Amended Requirements for tvOS

All general rules apply except as expressly modified by a rule with the same number in this section.

Video

1. Video encoding requirements

1.20. For HDR content, frame rates less than or equal to 30 fps MUST be provided.

1.25. The 145 kb/s variant SHOULD NOT be provided.

Trick Play

6. Trick play requirements

6.16. SDR trick play streams MUST be provided.

Media Playlists

8. Media playlist requirements

8.12. You SHOULD provide at least 120 minutes of content in a live/linear playlist.

Master Playlist

9. Master playlist requirements

9.17. You MUST have no audio-only variants listed in the Master playlist.

Amended Requirements for iOS

All general rules apply except as expressly modified by a rule with the same number in this section.

Video

1. Video encoding requirements

1.3. Profile and Level for H.264 MUST be less than or equal to High Profile, Level 5.0.

1.32.a. For WiFi delivery, the default video variant(s) SHOULD be the 2000 kb/s (average bit rate) variant.

1.32.b. For cellular delivery, the default video variant(s) SHOULD be the 730 kb/s (average bit rate) variant.

Master Playlist

9. Master playlist requirements

9.18. Master playlists that are delivered over cellular networks MUST contain a variant whose peak BANDWIDTH is less than or equal to 192kb/s.

9.19. For backward compatibility, a peak 192kb/s H.264 variant packaged in a transport stream SHOULD be provided for cellular.

Amended Requirements for macOS

All general rules apply except as expressly modified by a rule with the same number in this section.

Video

1. Video encoding requirements

1.3. Profile and Level for H.264 MUST be less than or equal to High Profile, Level 5.0.

Amended Requirements for AirPlay 2—Enabled TVs

All general rules apply except as expressly modified by a rule with the same number in this section.

Video

1. Video encoding requirements

1.34 Encrypted fMP4 content MUST contain either a Sample Encryption Box ('senc') or both a Sample Auxiliary Information Sizes Box ('saiz') and a Sample Auxiliary Information Offsets Box ('saio').

Audio

2. Audio encoding requirements

2.10. Channel layout SHOULD NOT change within a stream.

Ads and Pre-/Mid-/Post-Rolls

3. Ad requirements

3.5. Inserted media SHOULD be at a similar frame rate (x, 2x, x/2) as the other content in the media playlist.

Subtitles

5. Subtitle requirements

5.2. Subtitles MUST be WebVTT.

Trick Play

6. Trick play requirements

6.13. If a normal video variant uses a video codec then I-frame variant(s) MUST exist with the same video codec.

Media Playlists

8. Media playlist requirements

8.16. You SHOULD NOT switch codecs at discontinuities. For example, do not switch between HEVC and H.264, or between AAC and Dolby Digital.

8.22. All video variants and renditions MUST have segment boundaries at the same points in time.

8.23. Frame rate changes at discontinuities SHOULD use a similar frame rate (x, 2x, x/2).

Master Playlist

9. Master playlist requirements

9.20. You SHOULD provide a full range of variants for each codec type and frame rate. Simliar frame rates (x, 2x, x/2) are compatible, non-similar frame rates may cause playback issues.

9.21. If you supply HDR content, you SHOULD provide both Dolby Vision and HDR10.

Revision History

The following table describes the changes to the HLS Authoring Specification for Apple Devices.

Date

Notes

2019/06/03

Added new table describing MIME types.

2019/03/04

Added new rules for Airplay 2-enabled TVs. Moved appendices into child article.

2018/09/11

Added new rules for content protection and media playlists.

2018/06/18

Added Dolby Digital Plus with Dolby Atmos information. Added codec value section.

2018/04/09

Made several minor changes to individual spec points. Updated the variant bit-rate table and broke it into two separate tables.

2018/01/16

Fixed several typos and made a couple of minor changes to audio encoding requirements.

2017/09/19

Updated document with HDR (HEVC) information.

2017/06/06

Updated document with HEVC/H.265 information.

2016/09/13

Added rules for fragmented MP4 files.

2016/06/13

Updated for iOS and macOS specifications.

2016/03/21

Updated Dolby Digital bit-rate recommendation to 384 kpbs.

2016/01/11

Fixed typo in section 10.2.

2015/12/17

Added section on using the hlsreport tool.

2015/12/08

Corrects a mistake in Table 2-3, Column 2 heading. Changed to 16:9 aspect from 19:0.

2015/10/21

New document describing the HTTP Live Streaming specifications for audio and video content delivery for Apple TV.

Topics

Appendices

HLS Authoring Specification for Apple Devices Appendices

Contains appendices containing additional information related to the HLS Authoring Specification for Apple Devices.

See Also

Specifications and Other Documents

About the Common Media Application Format with HTTP Live Streaming

Understand the Common Media Application Format as it applies to HTTP Live Streaming

Protocol Extension for Low-Latency HLS (Preliminary Specification)

This is the preliminary specification and implementation guide for adding Low-Latency HLS to your streams.

Links to Additional Specifications and Videos

Contains links to additional specifications and documents.

Videos about HLS

Contains links to informational videos.