MSL5 Origin Low-Latency HLS ingest requirements
This document outlines the requirements for publishing Low-Latency HLS (LL-HLS) content to MSL5 Origin. With LL-HLS output enabled for the MSL5 Stream, you can ingest short segment HLS streams and convert the HLS playlist and segments from the encoder into LL-HLS output.
Info: MSL5 Origin streams must be configured with LL-HLS output enabled to utilize this functionality. For the detailed configuration, refer to the Format > HLS > Enable Low Latency (LL-HLS) section on the Create an MSL5 stream page.
The Segment Template is required to configure when enabling LL-HLS. In this template, you need to describe the filename pattern for the stream segments. This pattern helps the system identify and order the stream segments correctly. Use one pair of parentheses ( ) around the changing segment number. The configuration needs to include regular expression to extract the media sequence from the segment filename in the first capturing group. For example, for a filename like
segment1001.ts, the regexsegment([0-9]+)captures1001as the media sequence. This configuration is essential for the MSL5 Origin to generate the preload hint for the LL-HLS playlist.Examples for Segment Templates:
- TS Segment Template
Template: segment_.ts
Regex: segment_(\d+).ts
Label:
Segment filename pattern (TS)
Example:
segment_1.ts, segment_2.ts, segment_3.ts, ...
Pattern: segment_.ts
(Regex: segment_(\d+).ts)- MP4 Segment Template
Template: --.mp4
Regex: index-\d+-(\d+).mp4
Label:
Segment filename pattern (MP4)
Example:
index-1713439200-1.mp4
index-1713439200-2.mp4
index-1713439200-3.mp4
Pattern: --.mp4
For example:
index-<unix_timestamp>-.mp4
(Regex: index-\d+-(\d+).mp4)
Where:
index = stream ID (fixed in this example)
1713439200 = timestamp (e.g., Unix time)
1, 2, 3 = sequential segment numbers
Refer to the low-latency HLS ingest requirements as follows:
Publishing Paths
Available Output Paths
/hls/live-ull/- LL-HLS output path (low latency)
Publishing Mode
- Normal Latency Mode: This mode depends on the path to which the encoder pushes the stream (Ingest Path).
- Standard HLS Mode:
- Ingest Path:
/hls/live/{stream-id}/{event_name}/index.m3u8or/{stream-id}/{event_name}/index.m3u8 - Input: Short Duration Standard HLS segments (e.g., 1s)
- Output: Content available on both paths:
/hls/live-ull/as LL-HLS
- Ingest Path:
Input Requirements
Standard HLS Input Mode
Protocol Requirements:
- HTTP POST: Use the HTTP POST method for segment upload.
- Segment Format: Use either fMP4 or MPEG-2 TS format for segments.
- EXT-X-VERSION: Include the EXT-X-VERSION tag with a value of 6 or higher in the playlist.
- Segment Duration: It is recommended to use a duration of 1 to 2 seconds for each segment.
Manifest Requirements
Variant Playlist Tags
Required Tags for EXT-X-STREAM-INF:
- PROGRAM-ID: Identifies the program.
- RESOLUTION: Specifies the resolution for video renditions.
- BANDWIDTH: Indicates the required bandwidth for streaming.
- CODECS: Lists the codecs used in the media.
- Consistent Segment Numbering: Must maintain consistent segment numbering across all variants.
Media Playlist Tags
Required Tags:
- EXT-X-TARGETDURATION: Defines the maximum segment duration of each segment.
- EXT-X-MEDIA-SEQUENCE: Provides accurate sequence numbering for the segments.
- EXT-X-PROGRAM-DATE-TIME: Should be included for each segment to specify the program's date and time.
HTTP Requirements
Connection Settings
Required Settings:
- HTTP Version: Use version 1.1 or higher.
- Method: Use POST for requests.
- Connection: It is recommended to use persistent connections.
Timeouts
- TCP/HTTP Timeout: Must be less than three times the segment duration.
- Examples:
- 1-second segments: Timeout should be less than 3 seconds.
- 2-second segments: Timeout should be less than 6 seconds.
Media Format Requirements
Container Requirements
- Video/Audio:
- fMP4 format is supported.
- MPEG-2 Transport Stream (.ts) format is supported.
- Subtitles: WebVTT format is required.
Codec Support
- Supported Video Codecs:
- H.264/AVC
- H.265/HEVC
- Supported Audio Codecs:
- AAC-LC
- HE-AAC
- AC-3
Implementation Examples
Standard Mode Example
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:1000
#EXTINF:1.000,
#EXT-X-PROGRAM-DATE-TIME:2025-10-15T12:00:00.000Z
segment1000
#EXTINF:1.000,
#EXT-X-PROGRAM-DATE-TIME:2025-10-15T12:00:01.000Z
segment1001
The Standard Mode uses complete segments and requires the program date and time.
LL-HLS Output Example
#EXTM3U
#EXT-X-VERSION:10
#EXT-X-TARGETDURATION:1
#EXT-X-SERVER-CONTROL:CAN-BLOCK-RELOAD=YES,PART-HOLD-BACK=3.0,CAN-SKIP-UNTIL=6.0
#EXT-X-MEDIA-SEQUENCE:1000
#EXT-X-MAP:URI="init.mp4"
#EXT-X-PROGRAM-DATE-TIME:2025-11-10T19:39:00.000Z
#EXTINF:1.000,
segment1000.mp4
#EXT-X-PROGRAM-DATE-TIME:2025-11-10T19:40:00.000Z
#EXT-X-PART:DURATION=1.000,URI="segment1001-part0.mp4"
#EXT-X-PROGRAM-DATE-TIME:2025-11-10T19:40:01.000Z
#EXT-X-PRELOAD-HINT:TYPE=PART,URI="segment1002-part0.mp4"
Updated 4 days ago
