Auto Muxed TS

This component muxes a single audio stream into every video rendition, producing one MPEG Transport Stream per rendition (audio and video together). The generated multivariant therefore has no separate audio rendition group — unlike output.autoHls and output.autoCmaf, whose renditions reference a shared audio group. Use this when a downstream consumer (for example an ad-insertion service) expects self-contained muxed TS renditions.

Rules

  • Exactly one audio stream is required; it is muxed into each rendition.

  • One or more video renditions are required.

  • Audio is packaged onto the video segment boundaries, so the video segmentation strategy (e.g. an exact frame count) governs segment length; there is no separate audio segmentation.

Publishing

This component is push-only: it publishes to the configured destinations and does not serve local-pull playlists. Configure at least one destination.

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

✗

<COMPONENT_ID>_NAME

sessionId

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

✗

notes

Additional notes about this component

✗

segments

Detailed segment configuration

✗

<COMPONENT_ID>_SEGMENTS

destinations

Destination to publish to (default: [])

✗

<COMPONENT_ID>_DESTINATIONS

local

The engine's own local (pull) copy of the playlists. Enabled by default; its retention is independent of the pushed destinations, so keep it short unless something pulls a long tail directly from the engine.

✗

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

discontinuityHandling

What to do when a gap or discontinuity is encountered. 'Prefer Discontinuity' also aligns the audio and video onto a shared clock (required for muxing independent sources). (default: "discontinuity")

✗

pdtSource

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

✗

addCmsdHeaders

Add CMSD headers (default: false)

✗

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.

✗

Local

Option Description Required

enabled

Serve a local copy at all. Turn off for push-only delivery so the engine retains nothing locally. (default: true)

✗

retention

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

✗

Example Configuration

  - type: output.autoMuxedTs
    config:
      displayName: muxed
      name: default
      sessionId: true
      segments:
        retentionPeriod: 60
        defaultSegmentCount: 0
        targetSegmentDuration: 6
        videoSegmentStrategy:
          type: framecount
          count: 128
      destinations: []
      id: automuxedts