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 (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