MoqOutputSettings interface

Settings to configure a Moq Egest see NorskOutput.moq()

Signature:

export interface MoqOutputSettings extends SinkNodeSettings<MoqOutputNode>, StreamStatisticsMixin

Properties

Property Type Description

c2paSigning?

C2paSigningSettings

(Optional) Settings for C2PA (Content Provenance and Authenticity) signing of MoQ output. When set, the init segment and every fragment of each published track is signed before being broadcast.

jitterBuffer?

JitterBufferConfig

(Optional) Optional jitter buffer configuration for smoothing output timing.

listener?

MoqOutputListenerSettings

(Optional) Optional: start a QUIC listener for direct MoQT subscriber connections.

namespace

string[]

The namespace to publish tracks within, as a list of segments (the on-the-wire MoQT tuple). For example, the namespace <"stage", "primary"> is ["stage", "primary"].

onConnection?

(connectionIndex: number, remoteHost: string) ⇒ MoqConnectionResult

(Optional) Called when a new subscriber connects via QUIC or WebTransport. Return accept with a sourceName, or reject to deny the connection.

onConnectionStatusChange?

(connectionIndex: number, state: string) ⇒ void

(Optional) Called when a connection status changes (connected, disconnected)

onRelayStateChange?

(event: MoqRelayStateEvent) ⇒ void

(Optional) Called whenever an upstream relay this egest is publishing to transitions through one of the lifecycle states. Use this to surface connection / announce / ready / failure events to the application UI. The relayUrl lets you correlate events when multiple relays are configured.

Sequence (per relay):

"connecting" → "announcing" → "connected" → "ready" ↓ (on retry) "announceFailed" { reason, retryMs } → loops back to "announcing"

At any time after "connecting": "disconnected" { reason }

"connected" and "ready" are deliberately separate so a UI can distinguish "we have a session, but the namespace hasn’t been accepted yet" from "the relay is publishing-ready".

outputTimecode?

PdtSource

(Optional) If set, a PRFT (Producer Reference Time) box is prepended to each CMAF media segment carrying an NTP wall-clock timestamp. The PdtSource controls how the timestamp is derived. By default, PRFT is only emitted on keyframe fragments.

outputTimecodeOnAllFrames?

boolean

(Optional) When true, emit PRFT on every fragment. Default: false (keyframes only).

relays?

MoqOutputRelaySettings[]

(Optional) MoQT relays to connect to and publish tracks for (e.g. CDN primary and backup)