HLS .m3u8 Manifests
Veeplay supports .m3u8
HLS manifests with an EXT-X-VERSION
of 3
or higher for live streaming and video on demand (VOD). When Veeplay encounters an ad avail, it attempts ad insertion or replacement, based on the type of content. If there aren't enough ads to fill the duration, for the remainder of the ad avail, Veeplay displays the underlying content stream or the configured slate.
HLS manifests must satisfy the following requirements:
Manifests must be accessible on the public internet.
Manifests must be live or video-on-demand (VOD).
Manifests must have an
EXT-X-VERSION
of3
or higher.For live content, manifests must contain markers to delineate ad avails. This is optional for VOD content, which can use VMAP timeoffsets instead.
The manifest file must have ad slots marked with one of the following:
#EXT-X-CUE-OUT / #EXT-X-CUE-IN (more common) with durations as shown in the following example.
#EXT-X-DATERANGE (less common) with durations as shown in the following example.
All fields shown for
#EXT-X-DATERANGE
are required.
HLS master manifests must follow the HLS specification documented at HTTP Live Streaming: Master Playlist Tags. In particular,
#EXT-X-STREAM-INF
must include the fieldsRESOLUTION
,BANDWIDTH
, andCODEC
.
#
HLS Manifest Tag Handling#
EXT-X-CUE TagsVeeplay replaces EXT-X-CUE-OUT
, EXT-X-CUE-OUT-CONT
, and EXT-X-CUE-IN
tags in the input manifest with EXT-X-DISCONTINUITY
tags in the output manifest. The DISCONTINUITY
tags mark the following boundaries:
- Where the main content transitions to an ad
- Where one ad transitions to another ad
- Where an ad transitions back to the main content
#
EXT-X-DATERANGE TagsVeeplay passes through EXT-X-DATERANGE
tags from the input manifest to the output manifest. Veeplay also inserts EXT-X-DISCONTINUITY
tags that correspond to the DATERANGE
tags. The DISCONTINUITY
tags mark the following boundaries:
- Where the main content transitions to an ad
- Where one ad transitions to another ad
- Where an ad transitions back to the main content
#
EXT-X-KEY TagsVeeplay passes through EXT-X-KEY
tags from the input manifest. These tags indicate that the main content is encrypted. Since ads aren't encrypted, Veeplay inserts EXT-X-KEY:METHOD=NONE
at the start of an ad avail. When playback returns to the main content, Veplay re-enables encryption by inserting the EXT-X-KEY
tag with the METHOD
value defined as the encryption type.
#
Unrecognized TagsVeeplay passes through all unknown and custom tags from the input manifest to the output manifest.
#
HLS Supported Ad MarkersVeeplay identifies ad avail boundaries in an HLS manifest ad markers in the input manifest.
#
EXT-X-CUE-OUT and EXT-X-CUE-INThis type of ad marker is the most common. The following examples show options for these cue markers.
#
EXT-X-DATERANGEWith EXT-X-DATERANGE
ad marker tags, you use SCTE35-OUT
attributes to specify the timing of the ad avail.
Note
Veeplay ignores any START-DATE
attributes that are provided for EXT-X-DATERANGE
ad markers.
You can specify the ad avail in one of the following ways:
EXT-X-DATERANGE
tag withSCTE35-OUT
andDURATION
specifications.Example
Paired
EXT-X-DATERANGE
tags, the first with aSCTE35-OUT
specification and the second with aSCTE35-IN
specification.Example
A combination of the prior options. You specify an
EXT-X-DATERANGE
tag withSCTE35-OUT
andDURATION
specifications followed by anEXT-X-DATERANGE
tag with aSCTE35-IN
specification. In this case, Veeplay uses the earliest cue-in setting from the two specifications.Example
#
EXT-X-SPLICEPOINT-SCTE35You append the EXT-X-SPLICEPOINT-SCTE35
ad marker tag with a SCTE-35 payload in base64-encoded binary. The decoded binary must provide a SCTE-35 splice_info_section
containing the cue-out marker 0x34
, for provider placement opportunity start, and the cue-in marker 0x35
, for provider placement opportunity end.
The following example shows the splice point specification with base64-encoded binary payloads that specify the cue-out and cue-in markers.