Auto HLS (TS)

Creates HLS outputs with Transport Stream segments from multiple video and audio streams

Component Configuration

Option Description Required Environment override

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

✗

<COMPONENT_ID>_NAME

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

✗

<COMPONENT_ID>_SEGMENTS

destinations

Destination to publish to (default: [])

✗

<COMPONENT_ID>_DESTINATIONS

pushMode

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

✗

subtitleFormat

Container format for subtitle renditions. WebVTT is served as raw .vtt for HLS (CMAF for DASH); TTML is always stpp fragmented-MP4, even for the HLS-TS variant. (default: "webvtt")

✗

pdtEverySegment

Insert Program Date Time every segment (default: true)

✗

initialState

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

✗

<COMPONENT_ID>_INITIALSTATE

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)

✗

audioGroups

Pair video renditions with audio renditions in the HLS multivariant playlist (e.g. the top rungs with a high bitrate AAC). Without groups every variant offers every audio rendition. (default: [])

✗

c2paSigning

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

✗

Options with an environment override can be set when Studio starts, without editing the workflow. <COMPONENT_ID> is this component’s id in your workflow, uppercased, with spaces and dashes replaced by underscores and other punctuation removed — a component named SRT Input reads SRT_INPUT_PORT. Renaming a component changes its id, and so changes these variable names.

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)

✗

customHeaders

Optional custom headers added to every push request sent to this destination (e.g. CDN authentication tokens) (default: [])

✗

retention

Retention override for this destination. Any field left blank uses the shared Segment retention.

✗

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)

✗

retention

Retention override for this destination. Any field left blank uses the shared Segment retention.

✗

Destinations (OCI)

Option Description Required

type

"oci"

✓

bucket

The OCI Object Storage bucket to push to

✓

prefix

The object-name prefix under which playlists and segments are placed

✗

auth

How Norsk authenticates to OCI. Instance principal (the default) needs no configuration when Norsk runs on a suitably-policied OCI instance; the other options supply user API-key material. (default: {"type":"instancePrincipal"})

✗

namespace

Object Storage namespace. Discovered from the tenancy when omitted.

✗

region

Region identifier, e.g. uk-london-1. Taken from the auth profile / instance metadata when omitted.

✗

endpoint

Optional scheme://host[:port] override of the regional endpoint

✗

realmDomainComponent

Realm domain (default oraclecloud.com; set for government realms)

✗

includeAdInsertions

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

✗

retention

Retention override for this destination. Any field left blank uses the shared Segment retention.

✗

Audio Groups

Option Description Required

id

Group id (the HLS GROUP-ID)

✓

audio

Audio rendition names in this group (default: [])

✗

video

Video rendition names (ladder rung names) that play with this group's audio (default: [])

✗

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

Ezdrm Config

Environment override: GLOBAL_EZDRM_CONFIG (sets this global option as a whole).

Option Description Required

token

Token for EZDRM

✓

pX

The last six digits of your Widevine Profile ID

✗

Axinom Config

Environment override: GLOBAL_AXINOM_CONFIG (sets this global option as a whole).

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

✗

previewTokenLifetimeHours

How long the local preview's playback token stays valid, in hours from when the output starts (default 24)

✗

Tags: hls ts transport stream abr playlist