WebRTC Duplex

Sends video and/or audio to a client, receives video and/or audio from client

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

✓

acceptVideo

Accept video from the client (default: true)

✗

micTransport

How the client publishes in. WebRTC takes it over WHIP; MoQ takes it over the global MoQ Preview listener instead. (default: "webrtc")

✗

returnTransport

How what this duplex is sent goes back to the client. WebRTC serves it over WHEP; MoQ publishes it over the MoQ Preview listener or relay instead. (default: "webrtc")

✗

notes

Notes about this component

✗

burstProtection

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

✗

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: webrtc duplex bidirectional interactive