CMAF Media Playlist

This component creates, and optionally publishes, a cmaf media playlist for a single stream

Component Configuration

Option Description Required

id

A unique identifier for the component instance

displayName

The name shown in the Studio UI of this component

name

The name of the playlist (default: "norsk.m3u8")

sessionId

Generate a unique session id per run to avoid cache collisions (default: false)

publishingGroup

Each playlist will be published within a 'group', change this if you need multiple playlists for the same stream

discontinuityHandling

What to do when a gap or discontinuity is encountered (default: "gap")

segments

Detailed segment configuration

destinations

Destination to publish to (default: [])

pushMode

If pushing to a remote destination. include these playlist types (default: "hls_dash")

initialState

The publishing state of this endpoint by default on start-up (default: "enabled")

addCmsdHeaders

Add CMSD headers (default: false)

c2paSigning

Sign init and media segments with a C2PA Live Video manifest before delivering them. Default is disabled. (default: {"type":"disabled"})

notes

Additional notes about this component

Segments

Option Description Required

retentionPeriod

How many seconds of data to retain for playback in media playlists (default: 60)

defaultSegmentCount

How many segments to display in a default playlist (0 means show all) (default: 0)

targetSegmentDuration

How many seconds should be in each segment (default: 4)

targetPartDuration

For low latency playlists, what size parts should be generated in seconds (default: 1)

audioSegmentStrategy

Detailed segmentation strategy. Must be configured to match segment duration (after rounding) or invalid playlists may be generated (default: {"type":"default"})

videoSegmentStrategy

Detailed segmentation strategy. Must be configured to match segment duration (after rounding) or invalid playlists may be generated (default: {"type":"default"})

integralSegmentDuration

Round segment durations in playlist to integers instead of true decimal value. Possible workaround for certain player issues. (default: true)

holdBackSegments

How many segments back should a player start

holdBackParts

How many parts back should a player start

lowLatency

Produce low-latency HLS (EXT-X-PART / blocking reload). Turn this off for standard, CDN-cacheable playlists with no parts — recommended when delivering through a caching CDN. (default: true)

Destinations (Akamai)

Option Description Required

type

"akamai"

ingest

The complete URL to be pushed to

playback

The URL from which playback can be accessed

includeAdInsertions

If ad markers are inserted, include them in this publication (default: false)

Destinations (S3)

Option Description Required

type

"s3"

host

The hostname of the s3 bucket to push to

prefix

The sub directory of the bucket to place playlists and segments into

includeAdInsertions

If ad markers are inserted, include them in this publication (default: false)

C2pa Signing (Disabled)

Option Description Required

type

"disabled"

C2pa Signing (Enabled — Segment Manifest Box (§19.3))

Option Description Required

type

"segmentManifestBox"

alg

Signing algorithm. Must match the supplied certificate. (default: "es256")

privateKeyPath

Filesystem path (readable by the Norsk Media process) to the PEM-encoded private key. Not the key contents.

signCertPath

Filesystem path (readable by the Norsk Media process) to the PEM-encoded signing certificate. Not the certificate contents.

taUrl

Optional Time Authority URL for timestamping signatures. If omitted, the C2PA_TA_URL environment variable is consulted; if also unset, the manifest is signed without a timestamp token.

streamId

Identifier embedded in every signed segment's c2pa.livevideo.segment assertion. Should be unique per logical stream so downstream validators can correlate the sequence chain. (default: "cmaf-playlist")

chainOfTrust

Derived-signer mode: every output segment carries a parentOf C2PA ingredient pointing back at the verified upstream segment. Requires the input to have c2paVerification enabled — when no verified parent is available the segment is signed unchained and a c2pa_chain_dropped notification fires. (default: false)

C2pa Signing (Enabled — Verifiable Segment Info (§19.4))

Option Description Required

type

"verifiableSegmentInfo"

alg

Signing algorithm. Must match the supplied certificate. (default: "es256")

privateKeyPath

Filesystem path (readable by the Norsk Media process) to the PEM-encoded private key. Not the key contents.

signCertPath

Filesystem path (readable by the Norsk Media process) to the PEM-encoded signing certificate. Not the certificate contents.

taUrl

Optional Time Authority URL for timestamping signatures. If omitted, the C2PA_TA_URL environment variable is consulted; if also unset, the manifest is signed without a timestamp token.

streamId

Identifier embedded in every signed segment's c2pa.livevideo.segment assertion. Should be unique per logical stream so downstream validators can correlate the sequence chain. (default: "cmaf-playlist")

validityPeriodSecs

Validity window (seconds) advertised in the §19.4 c2pa.session-keys assertion. Leave empty to use the SDK default (86400, 24h).

Tags: cmaf playlist hls media