HLS Specifications

Modified on Wed, 11 Mar at 11:46 AM



Master / Multi-variant Manifest. Basic HLS configuration.


HLS Version

Version 3 (minimum) to 4 (maximum)


Muxing mode

.TS segment containers



HLS Master Manifest Syntax

• #EXT-X-VERSION defined at 3 minimum / 4 maximum

• #EXT-X-INDEPENDENT-SEGMENTS must be specified

• #EXT-X-STREAM-INF tags have at least the "BANDWIDTH" and "CODECS" attributes.

• CODECS Must be specified with RFC-6381

• Using a mix of RFC versions is forbidden


Video & audio formats 

• Video Codec allowed : H.264

• Bitrate ladder:

• 1080p - up to 6000kb/s

• 720p - up to 4000kb/s

• 540p - up to 2500kb/s

• 360p - up to 1000kb/s


• FrameRate: 30 FPS (mandatory)

• Audio Codec allowed : AAC-Low Complexity

• Bitrate: from 96kb to 192Kb/s

• Sample Rate: 48 000 Hz

• Tracks number: 2 stéréo

• Muxing type: muxed on all rendition tracks


Protection 

• Clear feed only

• NO DRM allowed

• NO AES allowed


HLS Master/Multivariant manifest

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=5929880,AVERAGE-BANDWIDTH=5711200,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=29.970
media_video_1080p30.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4214276,AVERAGE-BANDWIDTH=4061200,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=29.970
media_video_720p30.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2498672,AVERAGE-BANDWIDTH=2411200,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=29.970
media_video_540p30.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1354936,AVERAGE-BANDWIDTH=1311200,CODECS="avc1.4d401e,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970
media_video_360p30.m3u8




Basic HLS configuration


HLS Version

Version 3 (minimum) to 4 (maximum)


Muxing mode

.TS segment containers


Media playlist syntax

MUST BE specified : 

• #EXT-X-VERSION defined at 3 minimum / 4 maximum

• MUST BE same value as Master / Multi-variant Manifest

• #EXT-X-TARGETDURATION

• EXT-X-MEDIA-SEQUENCE tags MUST BE synchronized on all media playlists and incremented by 1

• EXT-X-PROGRAM-DATE-TIME tags MUST BE present in media manifests.

• MUST BE described before the first segment

• MUST BE always on top (synchronized with the playlist duration)


Manifest duration

• Number of segments = 10

• Segment size = 6sec

• Duration = 60sec


Protection 

• Clear feed only

• NO DRM allowed

• NO AES allowed



HLS media playlist - normal state (no ads)

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:709873
#EXT-X-PROGRAM-DATE-TIME:2024-08-20T07:59:32.665Z
#EXTINF:6.00600,
media_video_1080p30_709873.ts
#EXTINF:6.00600,
media_video_1080p30_709874.ts
#EXTINF:6.00600,
media_video_1080p30_709875.ts
#EXTINF:6.00600,
media_video_1080p30_709876.ts
#EXTINF:6.00600,
media_video_1080p30_709877.ts
#EXTINF:6.00600,
media_video_1080p30_709878.ts
#EXTINF:6.00600,
media_video_1080p30_709879.ts
#EXTINF:6.00600,
media_video_1080p30_709880.ts
#EXTINF:6.00600,
media_video_1080p30_709881.ts
#EXTINF:6.00600,
media_video_1080p30_709882.ts