Through a network switch

Use this guide if you have both PCs plugged into a network switch.

About 7 minutes to read

Use this guide if both PCs are plugged into a network switch.

A home router can stand in for a switch if it switches traffic between its own ports, but it is not a good way to do it: routers throttle and run short of bandwidth, which shows up as dropping capture FPS and unstable ping. Use a dedicated switch or a direct PC to PC link if you can.


#Prerequisites

Before starting, make sure:

  • Both PCs are connected via Ethernet to the same network switch. Wi-Fi on either PC will cause issues.
  • Windows is fully updated on both PCs (this is a common cause of NDI detection failures).
  • Your system clock is synced on both PCs. Go to Settings → Time & Language → Date & Time → Sync now. Unsynced clocks can prevent the application from connecting to NDI streams.

Open PowerShell as admin on both PCs and run:

Get-NetAdapter | Select-Object Name, Status, LinkSpeed

Both Ethernet adapters must show 1 Gbps or higher. If either shows 100 Mbps, you have a cable or port issue — NDI at high FPS will saturate a 100 Mbps link and cause freezing, frame drops, and disconnects.

If you're getting bandwidth issues, stuttering, or "NDI connection lost" errors on a 1 Gbps switch: Some users have reported that certain budget switches (notably some TP-Link models) struggle with sustained NDI throughput. Upgrading to a 2.5 GbE switch has resolved these issues. If you've exhausted all other troubleshooting, the switch itself may be the bottleneck.


#Step 1: Install OBS (Gaming PC Only)

Everything in this section is installed on the Gaming PC — the one running your game.

  1. Download and install OBS Studio.
  2. Download and install the DistroAV 6.1.1 Plugin.
  3. Download and install NDI Runtime 6.

#Step 2: Configure OBS (Gaming PC)

#Video Settings

Navigate to Settings → Video and set:

  • Base (Canvas) Resolution and Output (Scaled) Resolution to the same value. Recommended options:
    • 800x600 — lowest bandwidth, works for most games
    • 1024x768 — slightly more detection fidelity, good middle ground
    • 1280x720 — highest fidelity of the three, requires more bandwidth
  • FPS: Set to Fractional FPS, at least 144/1. Higher is better — 240/1 is ideal if your bandwidth supports it.

Your in-game resolution doesn't matter here. OBS captures and scales independently. You can play at 1440p/4K and still output 800x600 through NDI.

On resolution choice: 800x600 is fine for most situations. If you want to be more cautious or want better detection at longer distances, use 1024x768 or 1280x720. Higher resolution = more bandwidth usage. 1080p is generally overkill for NDI and can cause bandwidth saturation on 1 Gbps links.

#Advanced Settings

Navigate to Settings → Advanced and set:

  • Color Format: NV12

#Game Capture Source

  1. In the Sources panel, click + and select Game Capture.
  2. Set Mode to Capture Specific Window and select your game (the game must be open).
  3. Select the Game Capture source in Sources, then press Ctrl + D to center it on the canvas.

Optional — Crop/Pad Filter: If you want to crop the capture to a center region (useful for reducing the area the AI scans), right-click the Game Capture source → Filters → add a Crop/Pad filter. Example values for 1920x1080 cropped to center:

Left: 800
Top: 400
Right: 800
Bottom: 400

Some users have reported shakier aim with crop filters enabled. If you experience this, remove the filter and rely on FOV settings in the application instead.

#Enable NDI Output

  1. In the OBS menu bar, go to Tools → DistroAV NDI Settings.
  2. Check the box next to Main Output.

#Disable OBS Preview

Right-click on the OBS preview area and select the option to disable the preview. This reduces GPU usage on the gaming PC.


#Step 3: Configure the Application (Script PC)

On your Script PC:

  1. Make sure the Capture Mode is set to NDI-V2 in the capture tab.
  2. Load a config — don't use the default config. Download a community config from the configs channel and make sure it's set to NDI mode.
  3. Press Start. You should see the stream appear.

If the status shows "WAITING" — see troubleshooting below.


#Troubleshooting

Work through these in order. The vast majority of NDI issues come from firewalls, Windows updates, or network misconfiguration.

#1. Whitelist Through Firewall (Most Common Fix)

This is the #1 cause of "stuck on waiting" and "can't find NDI source."

On the Gaming PC, whitelist:

  • obs64.exe — for both Private and Public networks

On the Script PC, whitelist:

  • moonlight.exe (or your application's exe) — for both Private and Public networks

To do this:

  1. Press Win + R, type firewall.cpl, press Enter.
  2. Click Allow an app or feature through Windows Defender Firewall.
  3. Click Change settings, then Allow another app.
  4. Browse to the exe and add it. Make sure both Private and Public checkboxes are checked.

Important: Simply disabling the firewall is NOT the same as whitelisting. Some users report that turning the firewall off entirely actually causes more problems. Keep the firewall ON and add proper rules.

#2. Set Network to Private

On both PCs:

Windows 10: Settings → Network & Internet → Status → Change connection properties → Select Private.

Windows 11: Settings → Network & Internet → Ethernet → Click your connection → Network profile type → Select Private.

#3. Windows Updates

Make sure both PCs are fully updated. This has been confirmed as a fix for NDI not being detected on newer software versions. If Windows shows a pending update (even a feature update to Windows 11), install it and restart.

#4. Sync Your Clock

On both PCs: Settings → Time & Language → Date & Time → Sync now. Clock desync has been confirmed as a cause of the application failing to connect to an NDI stream that otherwise works fine.

#5. Verify DistroAV Is Enabled

Open OBS → Tools → DistroAV NDI Settings → Confirm Main Output is checked.

#6. Check Network Connectivity

Open Command Prompt on the Script PC and ping the Gaming PC:

ping 192.168.1.x

(Replace with your Gaming PC's IP.) If this fails, your PCs aren't communicating over the network. Check cables, switch, and that both are on the same subnet.

#7. Install .NET Runtime

Some systems need this for NDI to function. Download from https://dotnet.microsoft.com/en-us/download, install, then restart.

#8. Try Stop/Start

In the application, press Stop then Start again. Some users have had the "WAITING" status clear simply by toggling this.

#9. Full Restart (Nuclear Option)

If nothing else works:

  1. Close everything on both PCs.
  2. Shut down both PCs completely.
  3. Power cycle the switch/router (unplug for 10 seconds).
  4. Start the Gaming PC first, open OBS, confirm NDI output is enabled.
  5. Start the Script PC, launch the application, set capture to NDI, and press Start.

#Common Issues from the Community

"NDI works on the old version but not the new one" There is no difference in how NDI works between versions. The fix is almost always: update Windows, whitelist the exe (public AND private), sync your clock, and make sure you're using an uploaded config set to NDI mode — not the default config.

NDI freezing / disconnecting every 10-30 seconds This is a bandwidth or switch quality issue. Check link speed (must be 1 Gbps+). Try lowering OBS resolution/FPS. If you're on a budget 1 Gbps switch and still having issues, a 2.5 GbE switch has been confirmed to fix this.

Game ping spikes when NDI is running The NDI stream is likely routing through your Wi-Fi adapter instead of the Ethernet cable. Make sure OBS/NDI is bound to the Ethernet adapter, not Wi-Fi. If your Gaming PC uses Wi-Fi for internet and Ethernet for the switch, isolate the IP ranges — e.g., if Wi-Fi is on 192.168.1.x, set your Ethernet link to 192.168.2.x or 192.168.0.x.

"Capture: WAITING" won't clear Work through the firewall whitelist, Windows update, and clock sync steps above. If those don't work, try loading a different community config. Run the application as administrator.

Debug window not showing / detection FPS very low This is usually not an NDI issue — check your Script PC specs, GPU drivers, and whether you've run the Windows optimization guide.


#Performance Notes

  • NDI adds some inherent latency over the network. The program latency shown in the debug view is the application's own processing latency, not the NDI capture latency — NDI latency can't be directly measured in the application.
  • If you want the absolute lowest latency, a capture card (especially PCIe like the Elgato 4K Pro) will outperform NDI. But NDI is a solid zero-cost option that works well for most users.
  • With a good network setup, NDI users commonly report 900+ capture FPS at 800x600.

Stuck on a step? Ask in the Moonlight Discord and a staff member will help.