Using NDI on macOS with the VDO NDI Output Plugin
The VDO NDI Output plugin turns any OpenFX (OFX) host on macOS into an NDI® source. This guide walks through installing the VDO OFX plugin and sending your first frames from DaVinci Resolve over NDI.
NDI® is a registered trademark of Vizrt NDI AB. Learn more about NDI at ndi.video.
What you get
- A universal macOS plugin (Apple Silicon + Intel) for any OFX host — DaVinci Resolve Fusion, Baselight, Nuke, Nucoda, Scratch, and Flame's OFX bridge
- Full colour pipeline: Rec.709, Rec.2020 and P3 D65 primaries
- HDR support with PQ and HLG transfer functions, plus
ndi_color_infometadata - 8-bit UYVY or 16-bit P216 output for high precision grading workflows
Requirements
- macOS 12 Monterey or later
- An OFX host, for example DaVinci Resolve 18 or later (Free or Studio)
- A free VDO account to download the plugin from the Downloads page
Step 1 — Download and install the VDO NDI Output plugin
- Sign in to your VDO account and open the Downloads page.
- Under VDO NDI Output — OFX Plugin, click Download for Mac.
- Double-click the downloaded
.pkgand follow the installer prompts. - The plugin is installed to
/Library/OFX/Plugins/VDOOutput.ofx.bundle, which is the system-wide OFX location that every supported host scans automatically.
Manual installation
If you prefer to install per-user, copy VDOOutput.ofx.bundle to either of:
/Library/OFX/Plugins/— system-wide, requires admin~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Plugins/— Resolve-only, per-user
Quit and relaunch your OFX host after installation so it re-scans the plugin directory.
Step 2 — Send NDI from DaVinci Resolve
There are three ways to route video through the VDO Output plugin. Most users will want the adjustment layer method — it lets you monitor the whole timeline over NDI without touching individual clips or switching to Fusion.
Option A — Adjustment layer on the Edit page (recommended)
An adjustment layer sits on a video track above your timeline and applies any OFX effect dropped on it to everything playing underneath. This is the easiest way to get a clean, full-timeline NDI output.
- Launch DaVinci Resolve and open a project.
- Open the Edit page.
- In the Effects Library (top left), open Effects → Toolbox → Effects and drag Adjustment Clip onto a new track above your timeline (for example V2 if your footage is on V1). Stretch it to cover the full length of the timeline.
- Still in the Effects Library, open OpenFX → Filters → VDO and drag
VDO Outputonto the adjustment clip. - Select the adjustment clip, then open the Inspector (top right) and scroll down to the VDO Output section to configure Source Name, colour space, HDR metadata, etc.
- Press play — the plugin passes video through unchanged while simultaneously publishing it to the network as an NDI source called VDO Resolve Output (or whatever you set in Source Name).
Because the adjustment layer covers the entire timeline, every cut, transition and graded clip underneath it will stream over NDI as one continuous feed.
Option B — Directly on a clip
If you only want to stream a single clip (for example, a playback review of one take):
- On the Edit page, select the clip on the timeline.
- Open Effects Library → OpenFX → Filters → VDO and drag VDO Output onto the clip.
- Configure the plugin in the Inspector panel under OpenFX.
The plugin only runs while that clip is playing; gaps and other clips will not appear on the NDI feed.
Option C — Fusion node graph (advanced)
Use this when you need the plugin inside a Fusion composition, or you want to tap a specific intermediate node rather than the final timeline output:
- Open the Fusion page on the clip you want to tap.
- Right-click in the node graph and choose Add Tool → VDO → VDO Output.
- Connect your source (typically
MediaIn1or whichever node you want to publish) to the VDO Output node's input. - Leave the node's output unconnected or pass it through to
MediaOut1— the node is a pass-through, so it does not alter the signal downstream. - Configure the NDI parameters in the Fusion Inspector.
Receiving the stream
On any machine on the same subnet, open an NDI-aware receiver — VDO Streamer, OBS with the NDI plugin, or any other compatible tool — and select VDO Resolve Output from the list of available sources.
That's it. The source will appear on every machine on the same subnet that is running an NDI-aware receiver.
Plugin parameters
The VDO Output node exposes the following controls in the Fusion inspector:
| Parameter | Options | Description |
|---|---|---|
| Output Mode | NDI / VDO | NDI sends over the standard NDI protocol. VDO mode is reserved for the VDO platform's native transport. |
| Source Name | Text | The name that appears in NDI receivers. Defaults to VDO Resolve Output. |
| Input Primaries | Rec.709 / Rec.2020 / P3 | The colour primaries of the incoming video from your host. |
| Output Primaries | Rec.709 / Rec.2020 / P3 | The target primaries for the NDI output. A 3×3 matrix conversion is applied automatically. |
| Transfer Function | None / Rec.709 / HLG / PQ | The OETF curve applied to linear-light data. Use None to pass the host's encoding through unchanged. |
| Output Range | Video (Limited) / Full | YUV quantisation range. Video is 16–235 in 8-bit, Full is 0–255. |
| Content Type | Same as Transfer / SDR / HDR PQ / HDR HLG | Controls the NDI colour metadata independently of the transfer function. |
| Send NDI Metadata | On / Off | Embeds the ndi_color_info XML block in every frame so receivers know the primaries, transfer, matrix and range. |
| Force 8-bit | On / Off | Forces 8-bit UYVY output. When off, the plugin uses 16-bit P216 for higher precision. |
Recommended settings
The plugin sits at the end of your pipeline and treats the incoming frame as-is. Set Input Primaries to the colour primaries of your timeline output (not Resolve's internal working space — those are different things, and the internal space changes with your colour management mode). If you're unsure, see DaVinci Resolve colour management for NDI output.
Standard Dynamic Range — Rec.709
Project timeline is Rec.709 / Rec.709 Gamma 2.4 (YRGB default or DaVinci YRGB Color Managed with Rec.709 output):
- Input Primaries: Rec.709
- Output Primaries: Rec.709
- Transfer Function: None (the timeline is already encoded Rec.709)
- Output Range: Video
- Content Type: Same as Transfer
- Force 8-bit: On (UYVY is fine for SDR)
HDR10 / PQ delivery
Project timeline is Rec.2020 ST.2084 (PQ):
- Input Primaries: Rec.2020
- Output Primaries: Rec.2020
- Transfer Function: None (pass Resolve's PQ encoding straight through)
- Output Range: Full
- Content Type: HDR PQ
- Send NDI Metadata: On
- Force 8-bit: Off (use 16-bit P216 — PQ needs the precision)
HDR — HLG
Project timeline is Rec.2020 HLG:
- Input Primaries: Rec.2020
- Output Primaries: Rec.2020
- Transfer Function: None
- Output Range: Full
- Content Type: HDR HLG
- Send NDI Metadata: On
- Force 8-bit: Off
P3 D65 (theatrical / reference monitor)
Project timeline is P3 D65:
- Input Primaries: P3
- Output Primaries: Rec.2020 if your NDI receiver expects Rec.2020, or P3 to keep the signal native
- Transfer Function: None
- Output Range: Full
- Content Type: pick HDR PQ or SDR to match the timeline
- Send NDI Metadata: On
The plugin does not re-grade. If you set Input Primaries to something other than your timeline's actual primaries, the 3×3 matrix conversion applied when Output Primaries differs will produce wrong colours. When in doubt, leave Input and Output Primaries the same and let the receiver handle any further conversion.
Troubleshooting
"NDI SDK not found" on startup This is unusual — the plugin should not need an external NDI runtime. If you see this, reinstall the latest VDO NDI Output plugin from the Downloads page and restart DaVinci Resolve.
No signal visible in the receiver Check that Output Mode is set to NDI and that both the sender and receiver machines are on the same network and subnet. NDI discovery uses mDNS, which does not cross routed subnets without an NDI Discovery Server.
The frame counter is not incrementing The OFX host only evaluates the node graph during playback or rendering. Start Fusion playback or scrub the timeline to drive the plugin.
HDR preview looks dark or crushed The receiver does not know how to interpret the signal. Set Content Type to the correct HDR format (PQ or HLG) and enable Send NDI Metadata so the receiver can apply the right tone curve.
Plugin does not appear in the OFX host
Confirm the bundle exists at /Library/OFX/Plugins/VDOOutput.ofx.bundle, quit the host completely, and relaunch it. Some hosts cache OFX plugin lists — deleting the cache directory for that host forces a full rescan.
Trademark notice
NDI® is a registered trademark of Vizrt NDI AB. VDO is not affiliated with, endorsed by, or sponsored by Vizrt or any of its affiliates.