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.