Remote Commentary

Manages remote commentators with WebRTC, providing event audio/video monitoring and talkback capabilities

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

✓

monitorTransport

Transport for the per-commentator monitor mix ("ears") returned to each commentator. WebRTC serves it over WHEP; MoQ publishes it over the global MoQ Preview listener (WebTransport) instead, with no WHEP monitor, matching the program preview transport. (default: "webrtc")

✗

channelLayout

Audio channel layout (default: "stereo")

✗

burstProtection

Drop data until input is completely stable (default: true)

✗

commentators

Commentary channels. Each row is one commentator/language slot with an optional RFC 5646 language tag (e.g. "en", "es", "pt-BR") that flows onto the per-commentator output audio stream metadata. (default: [{"name":"English","languageCode":"en"}])

✗

<COMPONENT_ID>_COMMENTATORS

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.

Commentators

Option Description Required

name

Commentator/channel display name (e.g. "English", "Spanish", "Pundit Booth")

✗

languageCode

RFC 5646 language tag for this channel's broadcast output audio. Optional. Leave blank to emit un-tagged audio.

✗

Global Configuration

Ice Servers

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

Option Description Required

url

URL of the STUN/TURN server (with turn:/stun: prefix) as accessed by Norsk Studio

✓

reportedUrl

Optional URL of the STUN/TURN server as accessed by the client (if different to the above)

✗

username

Optional username

✗

credential

Optional password

✗

Moq Preview

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

Option Description Required

quicServerPort

QUIC listener port for native MoQT subscribers (optional — only needed for non-browser clients)

✗

webTransportPort

WebTransport listener port for browser MoQ players. Defaults to 4443. (default: 4443)

✗

publicHost

The hostname browsers reach MoQ on, when it is not the public hostname (PUBLIC_URL_PREFIX): e.g. a host whose web UI is reached over an SSH tunnel while its media ports are public. Applies to the listener above and, when no Relay public URL is set, to the relay.

✗

quicServerCert

TLS certificate file path. If omitted, a self-signed cert is auto-generated (14-day validity, rotated every 10 days).

✗

quicServerKey

TLS private key file path. If omitted, auto-generated alongside the cert.

✗

serveFingerprint

Publishes the cert SHA-256 so the moq-js player can trust it via WebTransport's serverCertificateHashes. Defaults on. Turn it off when the certificate is CA-issued and the browser trusts it already. (default: true)

✗

relayUrl

Publish through a shared MoQ relay instead of binding a listener here. Setting this switches every MoQ component to relay mode and the ports/cert above are no longer used, so several Norsk instances on one host can share a single MoQ port. This is how NORSK reaches the relay, which behind a proxy is an internal address.

✗

relayPublicUrl

What the BROWSER connects to, if that differs from the Relay URL. Leave blank to use the public hostname (PUBLIC_URL_PREFIX) with the Relay URL's port.

✗

relayNamespacePrefix

Prepended to every namespace this instance publishes to the relay, so instances sharing one relay stay distinct. Usually the instance name.

✗

relayDisableTlsVerify

Skip TLS verification when connecting to the relay. Needed only for a relay with a self-signed certificate. (default: false)

✗

Tags: commentary remote webrtc talkback comms