Appearance
NDI Support
Exaplay 3 can receive NDI® (Network Device Interface) video streams as live inputs, and optionally output to NDI for monitoring or routing.
What Is NDI?
NDI is a royalty-free standard by NewTek/Vizrt for transmitting high-quality video over standard IP networks (Gigabit Ethernet or faster). Common NDI sources include:
- vMix, OBS, Wirecast — live production software
- PTZ cameras with NDI output
- NDI converters for SDI and HDMI sources
- Other Exaplay 3 instances
Receiving NDI
- Ensure the NDI sender is on the same network as the Exaplay machine.
- In the File Browser, click the Live Feeds tab.
- Available NDI sources appear automatically (NDI discovery uses mDNS).
- Drag an NDI source onto a track in the Timeline, the same as any media file.

Live Source On/Off Switch
Each NDI live source has an Enabled switch in its Set Live Parameters dialog. Turning a source off releases the receiver so the NDI SDK stops scanning for the (absent) sender — the deterministic way to drop CPU when a source is switched off at the wall.
- The auto-reconnect search for a sender that drops out unexpectedly stays at full cadence, so a genuinely lost source still reconnects on its own.
- The Enabled switch is the operator's explicit lever for a source that is meant to be off.
New in 3.2: this switch resolves the "NDI source switched off → high CPU" case.
One Stream, Many Placements
Placing the same NDI source several times — four picture-in-picture windows of one camera, say — costs one receiver, not four. The clips that show one stream share a single receiver on the engine: the stream is received, decoded and uploaded to the GPU once, and every placement draws from that picture with its own position, size, effects and warping.
- In the clip's Inspector, the Live section says Receiver shared with … on every placement except the one carrying the receiver. Nothing needs to be set up — clips share automatically when they name the same device, stream and format.
- If the carrying clip is removed, stopped or switched off with its Enabled switch, another placement takes the receiver over on its own within a moment.
- The escape hatch is
live.share-receiversin the system configuration (default on); off restores one receiver per clip.
New in 3.4: four PiPs of one 1080p sender previously ran four receivers and could drop the engine to 20-30 fps at 80-90 % CPU.
Auto-Connect on Project Start
NDI sources saved in a project are re-armed automatically when the project loads, so live feeds start reliably on startup without having to re-add them by hand.
NDI Performance
| Resolution | Required network bandwidth |
|---|---|
| 1080p/30 | ~125 Mbps |
| 1080p/60 | ~250 Mbps |
| 4K/30 | ~500 Mbps |
Use a dedicated VLAN or at least a managed switch with QoS for NDI traffic in professional environments.
NDI Output (Sends)
An NDI stream is an output like a monitor — you add one and assign it a screen:
- Open the STAGE tab and, on the Mapping to outputs tab of the panel under the canvas, click + NDI.
- The new send appears in the Sends lane under the canvas. Select it and pick its Assigned screen — a send with no screen streams nothing.
- Set the NDI Name (the name receivers see; defaults to the first free
Exaplay NDI N) and, under More settings, its Resolution.
The stream becomes discoverable by any NDI receiver on the network as soon as the screen renders. What goes out:
- Its slice of the screen. A screen with only sends streams the whole canvas. A screen that mixes monitors and sends streams, for each send, the strip the Stage lays out beside the monitors — at the send's own resolution, without the monitors' picture.
- Several sends per screen are fine; each is its own stream with its own name.
- Video only. No audio travels with an NDI send.
- The screen's 2D warp, but not a VIOSO/dp calibration (that is applied to the projector window, and a monitoring stream wants the content).
- Opaque. The canvas alpha is dropped unless
ndi.send-alphais set in the system configuration. - At the engine's render rate (the frame rate the outputs actually present at).
The send's panel shows a Status line — streaming 1920x1080 @50 fps, canvas 1920,0 — and names the reason when it is not sending (the Medialooks NDI renderer missing, a slice that fell off the canvas after a resize). Two sends typed with the same name are told apart automatically (Name, Name 2).
Troubleshooting
| Problem | Solution |
|---|---|
| NDI source not discovered | Check firewall (allow UDP 5353 for mDNS, and TCP/UDP 5960+ for NDI data) |
| Dropped frames | Use a wired connection; NDI is latency-sensitive |
| High CPU on receive | Install the NewTek NDI SDK for hardware-accelerated decoding |
| High CPU from a source that is switched off | Turn the source off with the Enabled switch in Set Live Parameters — this releases the receiver so the SDK stops scanning for the absent sender |
| Frame rate drops with several placements of one stream | Every placement should say Receiver shared with … in its Inspector except one. If each says nothing, the clips differ in stream or format (check Set Live Parameters), or live.share-receivers is off |
| Several placements of one stream but you only need a smaller picture | Ask the sender for a lower resolution (a 720p sender costs less than half of 1080p to receive and decode) — the receiver cannot downscale the stream it is sent |
| Source shows but won't play | Check that resolution and frame rate are within system limits |
