Video Compose
Overlays multiple videos on top of a primary reference stream
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 |
✓ |
|
preview |
How this component's two preview monitors are delivered. A STREAMED preview needs H264, so Norsk creates an encoder for it automatically — and because that encoder belongs to this component, if it cannot keep up it back-pressures the whole workflow, not just the preview. A 1080p50 stream preview can therefore throttle your programme output. Use a lower frame rate, JPEG stills, or off if you do not need a live monitor. Does not affect the per-source thumbnails. |
✓ |
|
thumbnailResolution |
Resolution of the per-source thumbnails used to draw the layout diagram (the 'Current Layout' pane and the preset previews). These are PNG stills, one per source per second, so a source with transparency keeps its alpha and does not hide the layers beneath it. Larger is sharper but pushes bigger stills to every open browser pane. (default: "480x270") |
✗ |
|
previewTransport |
Deprecated — superseded by the Preview setting. |
✓ |
|
sources |
Automaticaly maintained by component, list of the sources that are subscribed to |
✓ |
|
reference |
Source name (NOT component id) of the reference stream that will drive the output. For input.srt-listener, this is the connection's streamId, which may differ from the component id. |
✗ |
|
pixelFormat |
Pixel format of the composed output. Leave unset and the engine composes to 4:2:0 8-bit whatever the reference carries — a 4:2:2 or 10-bit reference is subsampled back here. Pick 4:2:2 / 4:4:4 to keep chroma, or a 10-bit format to keep precision, through the composition. Software path only. |
✗ |
|
hardwareAcceleration |
Override the global hardware acceleration setting |
✗ |
|
pipelineHints |
Quadra-only hardware pipeline hints (ignored on other hardware) |
✗ |
|
notes |
Notes about this component |
✗ |
|
Options with an environment override can be set when Studio starts, without
editing the workflow. |
Preview (Live stream)
| Option | Description | Required |
|---|---|---|
type |
"stream" |
✓ |
transport |
WebRTC serves the monitors over WHEP; MoQ serves them over WebTransport instead, and requires the global MoQ Preview listener (cert + key) to be configured. (default: "webrtc") |
✗ |
frameRate |
Frame rate of the preview stream. 'Source rate' is the most expensive — a 1080p50 compose gets a 1080p50 preview encode. A lower rate cuts that encoder's work proportionally. (default: {"type":"source"}) |
✗ |
resolution |
Resolution of the preview stream. 'Source resolution' encodes at the compose's full output size — a 1080p encode feeding a monitor a few hundred pixels wide. Encoder cost scales with pixel count, so this is usually a bigger saving than the frame rate, and the preview encoder does the resize itself at no extra cost. (default: {"type":"source"}) |
✗ |
Pipeline Hints
| Option | Description | Required |
|---|---|---|
type |
✓ |
|
rescaler |
Quadra rescaler algorithm (ffmpeg ids: 0=default, 1=filterblit, 2=bicubic) (default: "default") |
✗ |
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: compose overlay pip picture-in-picture layout