MoqInputSettings interface

Signature:

export interface MoqInputSettings extends SourceNodeSettings<MoqInputNode>, StreamStatisticsMixin

Properties

Property Type Description

c2paVerification?

C2paVerificationSettings

(Optional) When set, each incoming init and media segment is validated against the C2PA Live Video continuity chain (spec §19.3). Per-segment outcomes are delivered to onC2paSegmentVerified. Reporting-only: media flows regardless of validation result.

disableTlsVerify?

boolean

(Optional) Disable verification of remote server’s TLS certificate (for development use ONLY, not for production)

listener?

MoqInputListenerSettings

(Optional) Optional: start a listener for direct publisher connections. When set, the ingest accepts incoming MoQT publisher connections instead of (or in addition to) connecting to a relay as a subscriber.

moqProtocolVersion?

"auto" | "draft14" | "draft16" | "draft18"

(Optional) Pin the MoQT transport draft this ingest negotiates (client mode), instead of auto-negotiating. Auto lands on the newest draft both ends prefer (draft-16 for Norsk↔Norsk). Set "draft18" to negotiate draft-18, which is required to activate the joining-FETCH catalog bootstrap. Mirrors MoqOutputSettings.moqProtocolVersion.

namespace

string[]

The namespace to subscribe to (client mode only), as a list of segments (the on-the-wire MoQT tuple). For listener mode, set listener.namespacePrefix instead — incoming publishers are matched by prefix and identified per-connection via MoqInputSettings.onConnection.

onC2paSegmentVerified?

(info: { representationId: string; isInit: boolean; outcome: C2paValidationOutcome; }) ⇒ void

(Optional) Called once per init segment and once per media segment when MoqInputSettings.c2paVerification is configured. For MoQ inputs, representationId carries the MoQ track name from the underlying CMAF stream.

onConnection?

(connectionIndex: number, remoteHost: string, publishedNamespace: string[]) ⇒ MoqConnectionResult

(Optional) Called when a new publisher connects via QUIC or WebTransport (listener mode only). publishedNamespace is the full namespace tuple the publisher announced, as a list of segments — e.g. for the namespace <"stage", "primary"> it’s ["stage", "primary"]. Return accept with a sourceName, or reject to deny.

onConnectionStatusChange?

(connectionIndex: number, state: string) ⇒ void

(Optional) Called when a publisher connection status changes (listener mode only)

onTimecode?

(ntpTimestamp: number, mediaTime: number) ⇒ void

(Optional) Called when a PRFT (Producer Reference Time) box is detected in an incoming CMAF segment. Carries the NTP wall-clock timestamp and the media decode time from the PRFT box.

sourceName?

string

(Optional) The source name to give the ingested media (client mode). Omit to derive it from the namespace. Set a distinct name when two MoQ inputs in the same instance subscribe to the SAME namespace — otherwise they produce identical stream keys and collide.

subscribeFilter?

"nextGroupStart" | "latestObject" | "fromStart"

(Optional) Where in the publication media-track subscriptions start (client mode). - "nextGroupStart" (default): join at the next group boundary, so the first delivered object is a keyframe — clean decode start, latency up to one group/GOP. - "latestObject": join mid-group at the very next published object — lowest latency, but video is undecodable until the next keyframe. - "fromStart": replay whatever history the publisher retains, then continue live — for consumers that want the whole publication (e.g. file-output workflows).

timeDomain?

TimeDomain

(Optional) Optional time-domain configuration. When set, the input is placed into a named coordinator and is timestamp-aligned with all other inputs sharing the same domain id within this Norsk instance. Omit for the default (uncoordinated) behaviour.

url?

string

(Optional) The URL of the MoQT relay to connect to (e.g. 'moqt://relay.example.com:4443'). Omit when using listener mode.