Configuration
NDI Receiver can be configured three ways: the Web UI (easiest), a TOML config file, or command line flags. CLI flags override config file settings.
Web UI
The Web UI runs on port 8080 by default. Open it from any browser on your network:
http://ndi-receiver.local:8080
From the Web UI you can:
- See connection status, FPS, resolution, and latency
- Browse and connect to available NDI sources
- Disconnect from the current source
- Change the display connector (if your device has multiple outputs)
- Select an audio output device
Config File
NDI Receiver uses a TOML config file for persistent settings. Create one at any path and pass it with --config:
./ndi-receiver --config /etc/ndi-receiver.toml
Example config:
# NDI source to connect to (name or partial match)
source = "DongleControl - Projector"
[web]
enabled = true
port = 8080
bind = "0.0.0.0"
[display]
backend = "drm"
connector = "HDMI-A-1"
fullscreen = true
[behavior]
auto_reconnect = true
reconnect_delay_ms = 2000
Config Reference
| Section | Key | Description | Default |
|---|---|---|---|
| (top) | source | NDI source name to connect to | (none — auto-discover) |
[web] | enabled | Enable the Web UI | true |
[web] | port | Web UI port | 8080 |
[web] | bind | Bind address | 0.0.0.0 |
[display] | backend | Display backend: drm or headless | drm |
[display] | connector | DRM connector name (e.g., HDMI-A-1, DP-4) | First connected |
[display] | audio_device | Audio output device (substring match) | HDMI preferred |
[display] | fullscreen | Fullscreen display | true |
[mdns] | enabled | Announce on the network via mDNS | true |
[mdns] | name | mDNS service name | Hostname |
[behavior] | auto_reconnect | Reconnect if source drops | true |
[behavior] | reconnect_delay_ms | Delay between reconnect attempts | 2000 |
[behavior] | auto_select_source | Auto-connect to first discovered source | false |
Command Line Flags
# Connect to a specific source
./ndi-receiver --source "DongleControl - Projector"
# Use a specific display connector
./ndi-receiver --connector "HDMI-A-1"
# Custom web UI port
./ndi-receiver --web-port 9000
# Discover sources and exit (useful for debugging)
./ndi-receiver --discover
# Headless mode (no display output — for testing)
./ndi-receiver --headless
# Select audio output device
./ndi-receiver --audio-device "HDMI"
CLI flags always override config file values.
Display Connectors
If your device has multiple display outputs (HDMI + DisplayPort, dual HDMI, etc.), you can choose which one NDI Receiver uses.
List available connectors from the Web UI at /api/connectors, or check your system:
# Common connector names
HDMI-A-1 # First HDMI port
HDMI-A-2 # Second HDMI port
DP-1 # First DisplayPort
Set the connector in your config file, CLI flag, or the Web UI.
Keyboard Controls
If you have a keyboard connected to the receiver device:
| Key | Action |
|---|---|
| Q or Esc | Quit NDI Receiver |
| Ctrl+C | Graceful shutdown |
Bandwidth
NDI streams use significant network bandwidth:
| Resolution | Approximate Bandwidth |
|---|---|
| 1080p30 | ~125 Mbps |
| 1080p60 | ~250 Mbps |
| 4K30 | ~500 Mbps |
Use Gigabit Ethernet for reliable performance. Wi-Fi (5GHz) can work for 1080p but may drop frames.