NDI input
NDI input properties for Script Engine. Receives a live NDI (Network Device Interface) video and audio stream from another NDI source on the local network — a camera, encoder, switcher, or another Composer instance. NDI is a widely used IP-based protocol for low-latency video transport, designed by NewTek and now maintained by Vizrt. Composer automatically discovers all NDI sources visible on the network so they can be selected from a drop-down. Includes tally signalling back to the upstream source, automatic reconnect, and bandwidth/quality presets. Free utilities for testing and monitoring NDI streams (Test Pattern Generator, Studio Monitor, Webcam Input, Scan Converter, etc.) are available in NDI Tools: https://ndi.video/tools/
| Property | Type | Access | Description |
|---|---|---|---|
ShowAdvancedOptions |
bool |
get/set |
Show or hide the input's advanced settings in the editor UI. [default=false]. |
AvailableSources |
Source |
get/set |
Picker for NDI sources currently advertised on the local network. Updates automatically as sources come and go. Selecting one populates SelectedSource with the source's full name. Useful for choosing between multiple available feeds in the editor — scripts that drive the input headlessly typically set SelectedSource directly. |
SelectedSource |
string |
get/set |
Full name of the NDI source the input is configured to receive. In NDI's standard MACHINE-NAME (Stream Name) format. Set this from a script to switch to a different NDI source — the input will connect on the next start, or immediately if already running and AutoReconnect is enabled. Required before StartCommand will run. |
PlaybackState |
PlaybackState |
get |
Current playback state of the NDI receiver (read-only). Reflects whether the receiver is Stopped, Starting, Running, or in an error state. Driven indirectly by StartCommand and StopCommand. Read this from a script to decide whether the stream is live; it also drives the running indicator and the enabled state of the Start/Stop buttons. |
StartCommand |
Command |
get |
Start receiving the selected NDI source. |
StopCommand |
Command |
get |
Stop receiving the NDI source. |
TallyProgram |
bool |
get/set |
Whether the upstream NDI source is told it's on the Program (on-air) output. [default=false]. When true, this input notifies the source that its feed is currently live — typically causing a red tally light on the camera or encoder. Set from a script driving a switcher workflow so the talent / operator knows which camera is live. |
TallyPreview |
bool |
get/set |
Whether the upstream NDI source is told it's on the Preview (next) output. [default=false]. When true, this input notifies the source that its feed is queued to go live — typically causing a green tally light on the camera or encoder. |
AutoReconnect |
bool |
get/set |
Whether the input automatically reconnects when the source disappears. [default=true]. When true, the input watches for the configured source to reappear on the network and resumes receiving without manual intervention. Useful when the upstream camera or encoder may briefly drop off the network during a production. |
IgnoreHostNameOnReconnect |
bool |
get/set |
Whether reconnect matches by stream name only, ignoring the host machine name. [default=true]. NDI sources are normally identified by MACHINE-NAME (Stream Name). With this on, the input reconnects to a stream with the same name even if it now comes from a different machine — handy when a source is moved between encoders or workstations. Disable for strict reconnects that require the exact same machine. |
LostConnectionSeverityError |
bool |
get/set |
Whether a lost connection is logged as an error or as a warning. [default=true (error)]. When true, a dropped NDI source produces an error-level log entry — useful in productions where a missing feed is critical. Disable to log it as a softer warning when the source is expected to come and go. |
PreferredBandwidth |
NDIlib.recv_bandwidth_e |
get/set |
Quality / bandwidth trade-off when receiving the stream. [default=highest]. Highest requests the full-quality stream from the source. Lowest requests a low-bitrate thumbnail-style stream that's cheap to receive and decode — useful for monitoring many sources at once or running on constrained networks. The available levels depend on what the source publishes. |
ComponentLog |
ComponentLog |
get |
Recent log lines from the input — connect, disconnect, reconnect, and error events (read-only). A short history of the most recent NDI events, useful for diagnosing why a source disappeared, why a reconnect attempt failed, or why the receiver couldn't start. |
Width |
int |
get |
Width of the video frames currently being received, in pixels (read-only). |
Height |
int |
get |
Height of the video frames currently being received, in pixels (read-only). |
LastRunningSourceName |
string |
get |
Name of the NDI source the input most recently received frames from (read-only). Survives a disconnect, so it shows what was last working even when the source has dropped off the network. Used internally as the target for automatic reconnect. |
FourCC |
AVPixelFormat |
get |
Pixel format of the incoming video frames (read-only, debug). Reflects the colour format the upstream NDI source is sending — typically a YUV variant such as UYVY. Useful for diagnostics when the colour or chroma looks unexpected. |
NumReceivedVideoFrames |
long |
get |
Total number of video frames received from the source since the receiver started (read-only, debug). Should grow steadily at the source's frame rate during healthy reception. A counter that stops moving while PlaybackState is Running indicates the source has gone silent or the network path has stalled. |
NumReceivedAudioFrames |
long |
get |
Total number of audio frames received from the source since the receiver started (read-only, debug). |
VideoQueueSize |
int |
get |
Number of video frames currently buffered in the input, waiting to be rendered (read-only, debug). Should sit close to zero during steady reception. A growing queue means the rest of the pipeline is consuming frames more slowly than the network is delivering them. |
AudioQueueSizeMs |
int |
get |
Amount of audio currently buffered in the input, in milliseconds (read-only, debug). A small steady value is normal. A growing buffer suggests audio is arriving faster than the project clock is consuming it. |
SdkTotalVideoFrames |
long |
get |
Total video frames the NDI receiver has accepted from the network, before Composer processes them (read-only, debug). Compare against NumReceivedVideoFrames to see whether frames are being dropped between the network receiver and Composer's pipeline. |
SdkTotalAudioFrames |
long |
get |
Total audio frames the NDI receiver has accepted from the network, before Composer processes them (read-only, debug). Counterpart to SdkTotalVideoFrames. |
SdkDroppedVideoFrames |
long |
get |
Total video frames dropped at the network receiver before reaching Composer (read-only, debug). Should stay at 0 during healthy reception. A rising count means the receive thread can't keep up with the incoming stream — typically a sign of CPU pressure or network jitter. |
SdkDroppedAudioFrames |
long |
get |
Total audio frames dropped at the network receiver before reaching Composer (read-only, debug). Should stay at 0 during healthy reception. |
SdkDroppedMetadataFrames |
long |
get |
Total metadata frames dropped at the network receiver (read-only, debug). NDI metadata frames carry tally, custom strings, and other side-channel data. A non-zero value usually doesn't affect video/audio quality but suggests upstream pressure. |
SdkVideoQueueDepth |
int |
get |
Number of video frames currently buffered inside the network receiver, upstream of Composer (read-only, debug). Sits in front of VideoQueueSize. Should be near zero — sustained high values mean Composer isn't draining frames fast enough and back-pressure is building up. |
SdkAudioQueueDepth |
int |
get |
Number of audio frames currently buffered inside the network receiver, upstream of Composer (read-only, debug). Sits in front of AudioQueueSizeMs. |
SdkMetadataQueueDepth |
int |
get |
Number of metadata frames currently buffered inside the network receiver (read-only, debug). |
Inherits from: AbstractInput, AbstractAudioProcessing, AbstractAudioMetering.
See also: NDI input in Inputs — user-facing introduction, screenshots, and section summaries.