HLS

HLS

Intro

Every HLS file has these properties

#EXTM3U
#EXT-X-VERSION:4

HLS Playlist Types

De-Muxed | Muxing

Test Streams

developer.apple.com/streaming/examples/

dash: 'https://cdn.bitmovin.com/content/assets/sintel/sintel.mpd'
hls:'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u'

Apple HLS examples - bib bop advance HEVC

Apple HLS examples - Multiple audio and subtitles

Apple HLS examples - bib bop normal

HLS stream having :
. 6 video qualities for Adaptive Bitrate
. 2 alternate audio tracks (English and French)
. 3 alternate subtitle tracks (English, English with audio description and French)
Link

Spatial 3D HLS

historic_planet_content 3D video

HLS Keys

TARGET DURATION

This sets the playlist or the video processor that all the components .mp4 or .ts or segments of audio/video/text are of specific secs. In this example the target segments are of 10 secs each.

#EXT-X-TARGETDURATION:10

#EXTINF:10.0,
fileSequenceA.ts
#EXTINF:10.0,
fileSequenceB.ts

So if the targetDuration is higher then the avPlayer library would take some time to buffer first 2 - 3 fragments and then resume.
So 10 secs * 2 so 20 secs of content. This is what I assume I understand from my conversation about this.

CONTENT METADATA

Protocol HLSTagDescriptor and HLSTagValueIdentifier

HLSTagDescriptor = EXT-X-XCAL-CONTENTMETADATA | the tag name
HLSValueIdentifier = KEYID | DRMAGNOSTIC | the attribute names in the tag

#EXT-X-XCAL-CONTENTMETADATA:KEYID="bd8e7d69-saw4-6a00-1eb9-637364ad6a4c",DRMAGNOSTIC="ZXlKNE5YUWpVekksa3r3XXzNFTnZrSFE="

Techniques

Switch Live to Event Record

When I think of an EVENT style playlist in streaming world, I think of DVR | Video Recordings. If a user is scrolling the Live Grid in video stream app and they want to record an episode, that playlist will go from LIVE -> EVENT. Best way to see this is to select a live program, hit Record, wait until the UI says the recording is set. Next, hit Watch and you'll see the Live HLS manifest file program is now Event

Thumbnails

#EXT-NOM-I-FRAME-DISTANCE

Advertising

#EXT-X-ADVERTISING:SYSCODE=231532523532377442

DRM

#EXT-X-XCAL-CONTENTMETADATA:
KEYID="017ee539-UUID-string",
DRMAGNOSTIC="some_base_64_key_value"

Apple Interstitials

Getting Started With HLS Interstitials - apple developer

Other

References

apple docs | HLS

what-is-hls-video-streaming-and-how-does-it-work

hls-http-live-streaming-how-does-it-work

what-is-hls-streaming-and-how-do-you-deploy-it

http-live-streaming

hls-streaming-protocol

apple developer | doc archive | HLS Overview

github public test videos HLS

Specifications

HLS content steering | apple specs

Highest quality

video - 0 = is the highest quality in the HLS format.

Playback

Improving playback on HLS

hls - optimize performance

Tools

N_m3u8DL-CLI github

Stream detector

hls downloader

stream recorder download

apple HLS validator

This gives us a debug analysis of the stream in question to validate whether its a stream issue or our player code issue.

mediastreamvalidator https://314.linear-ag-xcr/v1/frag/bmff/enc/wea/t/OsaK_UD_T_7381_0_7683.m3u8`