Auto CMAF

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 multivariant/dash playlist (default: "default")

sessionId

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

allowPreview

Whether to allow the preview to be shown in the UI (default: true)

notes

Additional notes about this component

segments

Detailed segment configuration

destinations

Destination to publish to (default: [])

pushMode

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

pdtEverySegment

Insert Program Date Time every segment (default: true)

initialState

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

drmProvider

Encrypt with a DRM provider (if configured globally)

multiplePrograms

Produce multiple multivariants if more than one program is present (default: false)

discontinuityHandling

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

pdtSource

What to use for Program-Date-Time - Norsk time or (where available, e.g. form SEI timecodes) source time (default: "norsk")

consistentSegments

Generate segments consistently across Norsk instances (default: false)

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"})

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

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: "auto-cmaf")

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: "auto-cmaf")

validityPeriodSecs

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

Global Configuration

DRM encryption is available through EZDRM and Axinom DRM. For both providers you need to configure authentication to enable Norsk to obtain encryption keys through the provider’s servers. You may also configure additional settings for Studio to be able to obtain a license for local playback for the encrypted content. After setting this global configuration, enabling on an it is as simple as setting drmProvider to true.

Ezdrm Config

Option Description Required

token

Token for EZDRM

pX

The last six digits of your Widevine Profile ID

Axinom Config

Option Description Required

tenantId

Tenant ID from your Axinom DRM account

managementKey

Management Key from your Axinom DRM account

comKeyId

Communication Key ID from your Axinom DRM account

comKey

Communication Key from your Axinom DRM account

Example Configuration

Here is an example of how to configure the output.autoCmaf component in a YAML file:

  - type: output.autoCmaf
    config:
      displayName: autoCmaf
      name: default
      sessionId: true
      segments:
        retentionPeriod: 60
        defaultSegmentCount: 0
        targetSegmentDuration: 4
        targetPartDuration: 1
      s3Destinations: []
      id: autocmaf