OBS-NDI Wiki
What is DistroAV
DistroAV is an open-source plugin that adds NDI® video and audio connectivity to OBS Studio. It allows OBS to receive video and audio from NDI-enabled devices, transmit the complete OBS program or preview over the network, and publish individual OBS sources or scenes as dedicated NDI feeds.
OBS-NDI is now DistroAV. Formerly known as OBS-NDI, the plugin was renamed to DistroAV in 2024. It is the same open-source project, so guidance written for OBS-NDI generally still applies. This page uses the current name, DistroAV, throughout.
DistroAV is designed for live streaming, broadcast production, dual-PC streaming, corporate AV, education, houses of worship, esports, podcasts, remote production, virtual production and other workflows that need flexible video and audio transport over an IP network. It is available for Windows, macOS and Linux.
What DistroAV does
DistroAV connects OBS Studio to the NDI ecosystem. OBS Studio normally works with local sources such as capture cards, webcams, media files, browser sources, microphones and display captures. DistroAV adds network-based sources and outputs that can be discovered by compatible devices and applications on the local network. With DistroAV, an OBS system can act as:
- An NDI receiver
- An NDI program output
- An NDI preview output
- A source-level NDI sender
- A scene-level NDI sender
- An audio routing endpoint
- A bridge between OBS and a larger IP video environment
The plugin integrates directly into the normal OBS interface. NDI inputs are added through the Sources panel, global outputs are configured through the OBS Tools menu, and dedicated outputs are attached as filters.
DistroAV is not a cloud streaming service and does not upload production feeds to a public platform. NDI communication normally takes place across a local or otherwise configured IP network.
Quick reference
| Item | Value |
|---|---|
| Plugin | DistroAV |
| Former name | OBS-NDI |
| Purpose | NDI video and audio integration for OBS Studio |
| License | Open source under GPL-2.0 |
| Supported platforms | Windows, macOS and Linux |
| Supported architectures | x64, ARM64 and Apple Silicon where supported by OBS and the selected package |
| Minimum OBS Studio version | OBS Studio 31.1.1 |
| Required NDI Runtime | NDI Runtime 6.3 or later |
| Primary integrations | NDI Source, NDI Output, NDI Video Output Filter and NDI Audio Output |
| Recommended network | Wired Gigabit Ethernet or faster |
| Source code | Publicly available through the DistroAV GitHub repository |
What is NDI
NDI is an IP-based video and audio technology used to move media between compatible applications, computers, cameras, production systems and other devices. Instead of assigning every signal to a physical HDMI or SDI cable, NDI makes compatible sources available over a network. A receiving system can discover an available sender and use its video, audio or metadata.
NDI is commonly used for:
- Live production
- Broadcast contribution
- Video monitoring
- Remote production
- Multi-computer streaming
- Presentation systems
- Camera transport
- Graphics and playback systems
- Recording workflows
- Corporate AV, education, esports and houses of worship
NDI performance depends on the network, sender, receiver, source format, system resources and selected transport settings. Although NDI can operate over Wi-Fi in some environments, wired Ethernet is strongly preferred for production use.
Internet speed and local network speed are not the same thing. DistroAV traffic between devices on the same network depends primarily on local network capacity, not the speed of the internet connection.
NDI Source
NDI Source receives video and audio from an NDI sender and adds the feed to an OBS scene. It behaves like a traditional OBS source. Once added, it can be positioned, cropped, scaled, transformed, filtered, hidden, grouped or combined with other OBS sources.
NDI Source can receive feeds from:
- Another computer running OBS and DistroAV
- NDI-enabled cameras
- NDI Screen Capture
- NDI Test Pattern
- Presentation applications
- Graphics systems and media servers
- Production switchers
- Mobile NDI applications
- Hardware NDI encoders
- Other compatible NDI software
A typical NDI Source configuration includes source selection, source behavior, bandwidth mode, latency mode, audio and video synchronization mode, YUV color range and YUV color space. The available options may vary by DistroAV version and source format.
Source selection
The Source setting determines which discovered NDI sender will be received. A sender name usually includes the name of the transmitting device and the name assigned by the application or output. Clear source names are important in environments with multiple cameras, computers, scenes or production stations.
If the expected source does not appear, the cause is usually related to:
- Firewall restrictions
- Local network permissions
- VPN software
- NDI groups or privacy settings
- mDNS discovery
- Avahi configuration on Linux
- Different network segments
- Missing NDI Runtime
- An inactive sender
- An OBS-NDI and DistroAV conflict
Source behavior
Source behavior controls how the NDI receiver responds when the OBS source is active, hidden, inactive or temporarily unavailable. The correct behavior depends on the production workflow. A source that remains connected may recover more quickly when shown again, while a source that disconnects when inactive may reduce unnecessary network and processing activity.
Current DistroAV releases use behavior controls intended to make source lifecycle management more predictable. New sources in the DistroAV 6.x generation use the newer pause-oriented behavior by default.
Bandwidth
Bandwidth settings determine how the NDI receiver requests or processes the source. Higher-bandwidth modes preserve more visual information but require more network capacity and processing resources. Lower-bandwidth modes may be useful for monitoring, constrained networks or troubleshooting.
Do not select the lowest-bandwidth option automatically. The best mode depends on the source, resolution, frame rate, network, receiver workload and required image quality.
Latency mode
Latency mode affects buffering and playback stability. A lower-latency setting can reduce delay but may be less tolerant of packet timing variation, overloaded systems, wireless links or unstable network paths. A safer or normal mode adds more tolerance and is generally more appropriate when stability matters more than minimum delay. Every production workflow should be tested under realistic conditions before going live.
Audio and video synchronization
DistroAV provides synchronization behavior for matching received audio and video. Source Timing is often suitable when the sender provides stable timestamps. Network-based synchronization may work better in some multi-device or network-sensitive environments. There is no universally correct synchronization mode; the correct selection depends on the sender, receiver, network, frame rate, audio clock and length of the production.
Long-duration tests are important. A workflow that appears synchronized during a five-minute test may behave differently after several hours.
YUV range
YUV Range controls how the receiver interprets the source signal. Common choices include Limited and Full range. An incorrect setting can produce:
- Washed-out blacks
- Crushed shadow detail
- Incorrect highlights
- Reduced contrast
- Unnatural colors
Limited range is common in SDR video workflows. Full range may be used in specific full-range or HDR workflows. The setting should match the actual output of the sender.
YUV color space
Color space determines how color values are interpreted. The correct setting depends on the source standard and production configuration. Rec. 709 is common for HD SDR production. Other formats may be appropriate for SD, UHD, HDR, computer graphics or specialized workflows. The sender, DistroAV source, OBS canvas, OBS output, recorder and final delivery system should use a consistent color workflow.
NDI Output
NDI Output transmits OBS video and audio to other NDI-enabled systems. The global output controls are available through the DistroAV settings in the OBS Tools menu. Depending on the current release and OBS mode, DistroAV can provide a Program Output and a Preview Output.
Program Output
Program Output sends the final OBS program feed. This is the complete output produced by OBS after scene composition, source transforms, overlays, filters, transitions and other production elements have been applied. Program Output is useful for:
- Sending OBS to a second recording computer
- Feeding a confidence monitor
- Delivering a program feed to another production application
- Connecting OBS to a switcher
- Sending the final composition to a remote production station
- Providing a feed for projection or distribution
- Integrating OBS into an NDI-based facility
- Creating a secondary encoding or monitoring workflow
The Program Output normally contains both video and the associated OBS program audio.
Preview Output
Preview Output can expose the OBS preview feed in Studio Mode. This allows another device or application to monitor the scene prepared for the next transition rather than the current program feed. Preview Output is useful for:
- Control-room monitoring
- Director or producer preview
- External multiview systems
- Confidence monitoring
- Integration with a larger production switcher
- Pre-air scene inspection
The preview output should not be confused with the program output. Program represents the live composition, while Preview represents the scene prepared on the preview bus.
NDI Video Output Filter
The NDI Video Output Filter publishes an individual OBS source or scene as a separate NDI feed. This is also known as a dedicated NDI output. Unlike Program Output, the filter does not have to send the complete OBS composition. It can expose a specific source or scene independently. Common uses include:
- Sending a clean camera feed
- Sending a graphics-only feed
- Publishing a scene without the main program overlays
- Routing a media source to another computer
- Creating an isolated contributor feed
- Sending a virtual set element
- Publishing a clean gameplay feed
- Providing an alternate scene to another production system
- Separating ISO feeds from the final program
The filter is added through the Filters window of the relevant source or scene.
A dedicated output should be assigned a clear and unique name. Ambiguous names become difficult to manage when several computers publish multiple sources.
Current DistroAV releases support dynamic filter naming tokens. Where supported, ${source} and ${filter} can be used to build names from the source and filter names. Older token formats should be replaced with the current syntax when upgrading from versions that used a previous naming system. The discoverability and active transmission behavior of a filtered output may depend on whether the parent source or scene is active and visible.
NDI Audio Output
DistroAV includes source-level audio output functionality for sending audio independently over NDI. This is useful when program audio should not be delivered as one mixed signal. Possible applications include:
- Separate microphone routing
- Isolated game audio
- Music output
- Sound effects and alerts
- Commentary
- Translation channels
- Production communications
- Post-production recording
- Independent audio processing
Audio behavior depends on the OBS source type and selected workflow. Audio associated with the NDI video filter is supported for compatible sources such as video capture sources, media sources and VLC sources.
Audio-only and source-specific workflows should be tested before production, particularly when using OBS application audio capture, surround audio, unusual sample rates or sources that activate only when visible.
Fix Alpha Blending Filter
DistroAV includes a filter intended to correct alpha blending behavior in supported transparency workflows. Alpha support is useful for lower thirds, animated graphics, virtual avatars, VTubing, overlays, titles, logos, compositing elements and remote graphics systems.
Transparency requires compatible settings across the sender, receiver, OBS color configuration and downstream application. An NDI feed can be visible while its alpha channel is interpreted incorrectly, producing black backgrounds, halos, incorrect edges or partially transparent colors.
Common DistroAV workflows
Dual-PC streaming
A dual-PC workflow separates gameplay or presentation capture from streaming and encoding. The first computer captures the content and sends it over NDI. The second computer receives the feed, adds overlays and audio, and performs the final stream or recording. This can reduce the production workload on the primary system, but it does not eliminate all OBS processing from the sending computer. OBS still needs CPU and GPU resources to capture and compose the source before transmitting it.
Gaming or presentation computer: runs the game or presentation, runs OBS Studio, captures the required content, enables DistroAV Program Output and sends the feed over the local network.
Streaming or production computer: runs OBS Studio, adds an NDI Source, selects the sender, adds microphones, overlays, alerts, graphics and chat, then streams or records the finished program.
Both computers should use wired Gigabit Ethernet or faster.
Multi-camera production
NDI-enabled cameras or computers can be received as individual NDI Sources. Each source can be placed in its own OBS scene, combined into a multiview or switched during a production. The network must have enough capacity for the combined traffic of all simultaneous feeds. A network that performs well with one source may not perform reliably with four or eight sources.
Clean feed and program feed
Program Output can send the complete broadcast while an NDI Video Output Filter sends a separate clean source. For example:
- Program Output sends camera, lower thirds, branding and captions
- A dedicated filter sends the camera without graphics
- Another dedicated filter sends graphics with transparency
- An audio output sends an isolated microphone
This is useful for remote production, post-production, recording, localization and distribution.
Remote graphics
A graphics computer can publish an NDI feed containing titles, scoreboards, presentation slides or transparent overlays. OBS can receive that feed through NDI Source and composite it with cameras or other content. Alternatively, OBS can publish a graphics scene through a dedicated NDI filter for use in another production system.
Corporate events
DistroAV can connect presentation computers, conference room systems, remote speakers, confidence monitors, recording stations, streaming encoders, graphics workstations, overflow rooms and production control systems. A properly designed NDI network allows feeds to be reassigned without rebuilding every physical signal path.
Education and training
DistroAV can transport instructor cameras, lecture slides, demonstration computers, laboratory feeds, classroom outputs, remote student contributions, recording feeds and livestream program outputs.
Houses of worship
Common workflows include camera feeds, lyrics and presentation computers, program output, clean output, lobby or overflow monitoring, recording, streaming, translation audio and remote production stations.
Esports
DistroAV can route observer feeds, player cameras, gameplay feeds, graphics, scoreboards, commentator cameras, clean feeds, program feeds and replay or recording outputs.
Podcast and studio production
NDI can connect cameras, guest computers, graphics stations, teleprompters, recorders and monitoring systems. Source-level outputs can create isolated feeds for post-production while Program Output delivers the live composition.
System requirements
OBS Studio
DistroAV requires OBS Studio 31.1.1 or later. The plugin is built for current Qt 6 versions of OBS Studio. Older OBS versions may fail to load the module or may not display DistroAV controls. When the plugin does not appear after installation, checking the OBS version should be one of the first troubleshooting steps.
NDI Runtime
DistroAV 6.x requires NDI Runtime 6. The current minimum requirement is NDI Runtime 6.3 or later. The plugin and runtime are separate components:
- DistroAV adds the OBS integration
- NDI Runtime provides the underlying NDI libraries
Installing only the plugin is not sufficient unless the selected package automatically installs or includes the required runtime.
Supported platforms
DistroAV supports 64-bit Windows, macOS and Linux. Available architectures depend on the operating system, OBS build and package. Supported environments include x64, ARM64 and Apple Silicon where compatible packages are provided.
Network
A wired Gigabit Ethernet network is the practical baseline for most production workflows. Higher-speed networks may be appropriate for:
- Multiple simultaneous feeds
- High frame rates
- UHD sources
- Production redundancy
- Shared storage traffic
- Large facilities
- Systems carrying other high-bandwidth data
Wi-Fi can work in some cases, particularly with carefully configured modern wireless infrastructure, but it is less predictable than wired Ethernet.
Linux NDI HX requirement
NDI HX decoding on Linux requires FFmpeg 7 or later. Some distributions ship older FFmpeg versions by default. A standard system update may therefore be insufficient for NDI HX support. Full-bandwidth NDI and NDI HX are not the same transport profile. A system may receive one type successfully while failing with the other.
Installing DistroAV on Windows
Recommended method - WinGet
Open Windows Terminal, PowerShell or Command Prompt and run:
This method can install DistroAV and retrieve required dependencies through the Windows package workflow. After installation:
- Close OBS if it was open.
- Complete the package installation.
- Restart OBS.
- Open the Tools menu and look for DistroAV settings.
- Open the Sources panel and confirm that NDI Source is available.
Chocolatey
DistroAV can also be installed through Chocolatey:
Install the NDI Runtime separately if it is not included in the selected package workflow.
Windows installer
Download the current Windows installer from the DistroAV release page and run the .exe package. The installer is the most straightforward method for users who do not use a command-line package manager. Close OBS before installation.
Manual Windows installation
Download the Windows ZIP package and extract it to:
The environment variable version of the same path is:
This is the current recommended shared plugin location for relevant OBS plugin packages. Manual installation requires the NDI Runtime to be installed separately.
Portable OBS installation
For an OBS portable installation, use the Windows Portable ZIP package. Extract the contents into the portable obs-studio folder while preserving the package directory structure. A normal system-wide installer may place files outside the portable OBS directory and should not be assumed to configure portable mode correctly.
Installing NDI Runtime on Windows
Install NDI Runtime through WinGet:
Or through Chocolatey:
NDI Tools can be installed optionally:
NDI Tools are highly useful for diagnostics because they provide known senders, receivers, monitoring tools and configuration utilities.
Installing DistroAV on macOS
Recommended package installation
Download the current .pkg installer from the DistroAV release page. Close OBS before running the package. The package can also be installed from Terminal:
The plugin is normally installed in the current user OBS plugin directory.
Homebrew
The project repository documents the DistroAV cask:
Older Homebrew installation instructions may refer to deprecated packages. Use the current project-provided cask rather than assuming an older formula remains correct.
Installing libNDI on macOS
Install or reinstall the NDI library with Homebrew:
A reinstall may be necessary because the installed NDI library does not always upgrade automatically.
macOS security prompts
macOS may block or quarantine software downloaded outside the App Store. Possible solutions include:
- Control-click the package and select Open
- Allow the package through System Settings › Privacy & Security
- Remove the quarantine attribute from the downloaded package
Use this command only for a package obtained from the trusted DistroAV release source.
macOS installer diagnostics
For detailed installer output:
For a log suitable for an issue report:
macOS local network permission
Recent macOS versions can block local network access until permission is explicitly granted. Open:
System Settings › Privacy & Security › Local Network
Confirm that OBS is allowed. Also check:
System Settings › Network › Firewall › Options
OBS should be allowed to accept incoming connections.
Installing DistroAV on Linux
Flatpak
For distributions using Flatpak:
Allow the OBS Flatpak to communicate with system Avahi:
Without this permission, NDI discovery may fail even when the plugin itself is installed correctly. The Flatpak package includes the required NDI component for its packaged environment.
Ubuntu package
On supported Ubuntu systems:
The Ubuntu package is community-maintained.
Debian or Ubuntu release package
Download the current .deb package and install it with:
If dependencies are missing:
Install the required NDI libraries separately unless the selected package explicitly handles them.
Linux NDI Runtime installation
The DistroAV repository provides an installation script that downloads the NDI libraries from the official NDI distribution source.
The script requires elevated permissions because it installs libraries into system locations.
Avahi and FFmpeg
Install the required discovery and media components:
Enable and start Avahi:
Avahi provides mDNS-based service discovery used by NDI in common Linux configurations.
Linux firewall example
The official project Wiki documents the following UFW rules as a troubleshooting baseline:
Firewall policies should be reviewed for the actual network and current NDI configuration rather than copied into a security-sensitive environment without evaluation.
Linux plugin path workaround
If a Debian or Ubuntu installation places the plugin where OBS does not find it, symbolic links may be required:
This is a workaround, not the preferred installation path for every distribution.
Verifying the installation
After installing DistroAV:
- Restart OBS Studio.
- Open Tools.
- Confirm that DistroAV or NDI Output settings are available.
- Add a source to a scene.
- Confirm that NDI Source appears in the source list.
- Open a source or scene filter window.
- Confirm that the DistroAV output filters are available.
- Open Help › Log Files › View Current Log.
- Search the log for DistroAV, NDI, warning or error entries.
If none of the DistroAV controls appear, the plugin did not load. Common causes include:
- Unsupported OBS version
- Missing NDI Runtime
- Unsupported NDI Runtime version
- Incorrect plugin path
- Wrong architecture
- OBS-NDI conflict
- Damaged installation
- Duplicate plugin versions
- Unsupported CPU
- Missing Linux dependencies
Receiving an NDI feed in OBS
Step 1 - Confirm the sender
Start the application or device that will publish the NDI feed. The sender must be active before it can normally be discovered.
Step 2 - Add NDI Source
- Select a scene.
- Click the plus button in the Sources panel.
- Select NDI Source.
- Enter a descriptive OBS source name.
- Open the NDI source dropdown.
- Select the required sender.
- Configure bandwidth, latency, synchronization and color settings.
- Click OK.
Step 3 - Confirm video and audio
Verify that the video is visible, audio meters respond, the source has the expected frame rate, colors and contrast are correct, audio and video remain synchronized, and no excessive network or rendering delay develops.
Step 4 - Run a long test
Test the complete workflow for at least the expected duration of the production. Monitor OBS rendering lag, network drops, audio drift, frame pacing, receiver reconnection, source recovery after scene changes, CPU and GPU usage, memory usage and network throughput.
Sending the OBS program over NDI
- Open OBS Studio.
- Open Tools › DistroAV Settings.
- Enable Program Output.
- Assign a clear output name if the current version provides a naming field.
- Configure the required NDI group where applicable.
- Apply the settings.
- Open an NDI receiver on another computer.
- Select the OBS output.
The receiving application should display the final OBS program.
If the output is discoverable but frozen, black, or showing only the last frame, disable the output, verify the OBS color format, and enable it again.
Sending a single source or scene
- Right-click the source or scene.
- Select Filters.
- Add the NDI Video Output Filter.
- Enter a unique output name.
- Configure the filter behavior.
- Apply the settings.
- Confirm the feed from another NDI receiver.
A source-level filter is appropriate when the downstream system should receive one element instead of the complete program.
NDI naming strategy
Clear naming reduces production errors. A useful format is:
Examples:
Studio A - Camera 1 - CleanStage - Presentation - ProgramControl Room - OBS - PreviewGaming PC - Gameplay - CleanGraphics - Lower Thirds - AlphaPodcast Room - Guest Camera - ISO
Avoid generic names such as Output, Camera, OBS, Main, Test or New Source. In large environments, include the room, system, role and signal type.
Network design for DistroAV
Use wired Ethernet
Wired Ethernet offers more predictable latency, throughput and packet delivery than Wi-Fi. A production network should avoid:
- Weak wireless links
- Power-saving network adapters
- Unmanaged congestion
- Oversubscribed uplinks
- Faulty USB Ethernet adapters
- VPN routing
- Guest-network isolation and client isolation
- Incorrect VLAN configuration
- Multicast or mDNS blocking
Gigabit is the baseline
Gigabit Ethernet is recommended for typical DistroAV workflows. A single feed may work on a slower connection, but capacity must be considered across all simultaneous traffic. The network may also be carrying internet traffic, file transfers, cloud backups, shared storage, VoIP, control traffic, other NDI sources, security cameras and remote desktop sessions.
Use faster networks for multiple feeds
2.5 GbE, 5 GbE or 10 GbE can provide more headroom for multi-source environments. Faster link speed does not automatically solve bad drivers, faulty cables, congested switches, misconfigured VLANs, firewall restrictions, CPU overload, GPU rendering lag or incorrect source settings.
Network adapter quality
Network adapter hardware and drivers matter. Some adapters and vendor utilities have historically caused latency, packet loss, power-management or stability problems. Production systems should use well-supported adapters with current drivers. Disable unnecessary traffic-management utilities, gaming network prioritization tools and aggressive power-saving features during troubleshooting.
VPN software
VPN software can change routing, interface priority, firewall behavior and mDNS discovery. Disable VPN software when diagnosing missing sources. A VPN that allows normal web browsing does not necessarily support NDI discovery or transport.
Different subnets
Automatic NDI discovery may fail across routers, VLANs or separate subnets. When mDNS is unavailable, configure an external source address through NDI Access Manager or the platform NDI configuration file. Example:
Restart OBS after changing the configuration. If the sender is configured by IP, assign it a static address or DHCP reservation. Otherwise, the connection can fail after the sender receives a different address.
NDI groups and privacy
NDI groups and privacy controls can intentionally hide sources. When a source is missing:
- Check the sender group
- Check the receiver group
- Disable privacy controls temporarily
- Verify that both systems use compatible NDI configuration
- Test without custom access restrictions
Performance optimization
Monitor OBS statistics
Open View › Stats in OBS and watch frames missed due to rendering lag, skipped frames due to encoding lag, dropped network frames, CPU usage, frame rate and average frame render time. Rendering lag indicates that OBS is not composing frames quickly enough. Encoding lag applies to local recording or streaming encoders. NDI problems may coexist with either issue but are not necessarily their cause.
Leave GPU headroom
OBS requires GPU resources to render scenes even when the final stream is encoded on another computer. A game running at maximum GPU utilization can leave insufficient resources for OBS. Limit the game frame rate when necessary. Running a game at the highest possible frame rate while expecting stable high-resolution OBS and NDI output is often unrealistic.
Optimize OBS scenes
Reduce unnecessary processing:
- Remove unused sources
- Avoid excessive browser sources
- Reduce unnecessary scaling
- Limit expensive filters
- Avoid redundant captures
- Keep media source formats practical
- Use Game Capture where appropriate
- Avoid unnecessary Window Capture
- Disable hidden sources that continue processing when not required
Use low latency audio buffering
OBS provides a Low Latency Audio Buffering Mode intended for outputs such as NDI and DeckLink. The option is located in OBS Settings › Audio. Enabling it can help prevent buffering behavior that develops into audio and video synchronization problems in some workflows. Test the setting with the complete production configuration.
Match frame rates
Use consistent frame rates where practical. For example, camera at 59.94 fps, sender OBS at 59.94 fps, receiver OBS at 59.94 fps and recording or streaming output at 59.94 fps. Mixed 30, 50, 59.94 and 60 fps workflows can work, but they require conversion and may introduce uneven motion or synchronization complexity.
Match resolution and canvas settings
Avoid repeated scaling across several systems. A practical workflow might use a sender base canvas of 1920 × 1080, a sender output of 1920 × 1080, a receiver base canvas of 1920 × 1080 and a final output of 1920 × 1080. Repeated scaling increases processing and can reduce image quality.
Audio and video synchronization
Synchronization problems can come from network jitter, sender clock behavior, receiver buffering, OBS rendering stalls, audio device clock differences, sample-rate conversion, source activation delays, long-running sessions, wireless networking, media source buffering or excessive system load.
Recommended process:
- Use wired Ethernet.
- Match audio sample rates.
- Enable Low Latency Audio Buffering Mode where appropriate.
- Test Source Timing.
- Test Network synchronization if Source Timing is unstable.
- Compare low and normal latency modes.
- Monitor OBS logs.
- Run a multi-hour test.
- Remove unnecessary filters and sources.
- Test with NDI Test Pattern to separate NDI transport issues from OBS scene issues.
Do not compensate for progressive drift by adding a fixed delay. A fixed delay may align the signal temporarily but does not correct a clock or buffering problem that continues to change.
Color configuration
Incorrect color settings can make the image appear washed out, too dark, oversaturated, desaturated, clipped, gray instead of black, incorrect in HDR or different between sender and receiver. Review:
- OBS Color Format
- OBS Color Space
- OBS Color Range
- DistroAV source YUV range
- DistroAV source color space
- Sender output format
- Receiver interpretation
- Monitor configuration
- Recorder format
Rec. 709 with Limited range is common for SDR broadcast-style workflows. Full range may be appropriate for computer graphics or specific production pipelines, but every stage must agree.
Alpha transparency
Transparent NDI workflows require careful configuration. One transmission workflow documented by the project has been tested with:
- Colour Format: NV12
- Colour Space: Rec. 709
- Colour Range: Full
- Receiver latency mode: Normal or Safe
A separate OBS recording workflow for alpha content may use:
- Colour Format: BGRA
- Colour Space: sRGB
- Colour Range: Full
- An output container and codec that preserve alpha, such as a compatible MOV workflow
These are different contexts. Settings used to transport an NDI signal are not automatically the same as settings used to record an alpha-enabled file. Always test transparency in the actual receiving application. Look for black backgrounds, white or dark edge halos, premultiplied alpha errors, incorrect opacity, color shifts, loss of transparency during recording and filters that flatten alpha.
Troubleshooting DistroAV
Recommended diagnostic order
- Identify the exact symptom.
- Confirm OBS and NDI Runtime requirements.
- Confirm the plugin is loaded.
- Check the OBS log.
- Test with official NDI Tools.
- Test locally on the sending computer.
- Test remotely on another computer.
- Check firewall and local network permissions.
- Disable VPN software.
- Check NDI groups and privacy settings.
- Test a manual sender IP.
- Test a simpler resolution and frame rate.
- Remove and recreate the DistroAV source or filter.
- Enable DistroAV debug logging.
- Submit a complete issue report if the problem remains.
Check the OBS log
Open Help › Log Files and use View Current Log or Upload Current Log File. The uploaded log URL should be included in support requests and bug reports. Search for DistroAV, NDI, error, warning, module not loaded, library not found, unsupported format and OBS-NDI conflict.
Test with NDI Tools
Use a known sender such as NDI Test Pattern, NDI Screen Capture or NDI Scan Converter. Use a known receiver such as NDI Studio Monitor or NDI Video Monitor. Test both locally and remotely.
If NDI Test Pattern cannot be received by NDI Studio Monitor, the problem is below the OBS and DistroAV layer. Focus on NDI installation, network discovery, firewall, permissions or transport. If NDI Tools work but OBS and DistroAV do not, focus on the plugin installation, OBS configuration, source settings and plugin logs.
Plugin does not appear in OBS
Symptoms: no DistroAV settings in Tools, no NDI Source in Sources, no NDI filter in Filters. Possible causes:
- OBS is too old
- NDI Runtime is missing or unsupported
- Plugin files are in the wrong directory
- Plugin architecture does not match OBS
- OBS-NDI remains installed
- Multiple DistroAV versions are installed
- CPU is unsupported
- The module failed to load
Solutions: update OBS Studio, install NDI Runtime 6.3 or later, remove OBS-NDI, remove duplicate DistroAV files, reinstall the correct package, check the OBS log for error codes and verify the plugin file path.
Windows plugin files
Depending on the DistroAV version and installation method, Windows plugin files may be located in:
or:
Current packages generally use the newer shared plugin location.
macOS plugin files
The plugin should normally exist at:
If the plugin is missing, reinstall the package and inspect the installer log.
NDI Runtime installed but not found on macOS
Older libNDI 6.0.0 installations could create incorrect permissions on /usr/local/lib. Possible errors include libNDI not found and libndi_load_v5: not found. Use a current NDI Runtime release and correct the directory permission if required:
NDI Source does not appear
Possible causes: sender is not active, firewall blocks discovery or transport, VPN is active, different networks or subnets, mDNS is unavailable, Avahi is not running, NDI groups do not match, privacy is enabled, local network access is blocked on macOS, or sender output is disabled. Diagnostic steps:
- Confirm the sender in NDI Studio Monitor on the sender.
- Confirm the sender in OBS on the sender.
- Confirm the sender in NDI Studio Monitor on the receiver.
- Start NDI Test Pattern.
- Check both firewalls.
- Disable VPN software.
- Remove custom groups temporarily.
- Add the sender IP manually.
- Restart OBS.
NDI Source is black
Possible causes: unsupported pixel format, receiver initialization failure, frame synchronization failure, sender stopped transmitting, incorrect color format, firewall allows discovery but blocks media transport, GPU or rendering issue, source is inactive, or NDI HX decoding requirement is not met. Solutions: test in NDI Studio Monitor, delete and recreate the NDI Source, use a standard SDR format, check the sender output format, check firewall settings, update FFmpeg on Linux for NDI HX and review the OBS log.
Audio only or video only
Possible causes: unsupported source format, disabled audio, incorrect OBS monitoring or track routing, source initialization failure, unsupported filter source type, sender does not provide both streams, receiver color or video format is unsupported, or audio sample-rate mismatch. Test the source in NDI Studio Monitor before changing OBS settings.
Program or preview output is frozen
Symptoms: output is unavailable, receiver shows only the last frame, or output stops after changing settings. Solutions:
- Disable Program or Preview Output.
- Open OBS Settings › Advanced.
- Select a supported Color Format.
- Apply the setting.
- Re-enable the DistroAV output.
Output filter does not start
Possible causes: unsupported pixel format, no compatible audio or video data, sender initialization failed, parent source is inactive, or filter configuration is invalid. Solutions:
- Select a supported OBS Color Format.
- Remove the NDI Output Filter.
- Save the filter configuration.
- Add the filter again.
- Confirm the parent source is active.
- Review the OBS log.
Windows firewall
Set the production network to Private when appropriate. Open Windows Defender Firewall and allow OBS Studio on the required network profiles. Third-party antivirus or firewall software may override Windows Firewall behavior. The DistroAV installer can add relevant firewall configuration in supported Windows installation workflows, but the rules should still be verified when sources are missing.
macOS firewall
Open System Settings › Network › Firewall › Options and set OBS to Allow incoming connections. Also open System Settings › Privacy & Security › Local Network and allow OBS to access the local network.
Linux discovery
Confirm that Avahi is installed and running, UDP 5353 is permitted, the OBS Flatpak has permission to communicate with Avahi, and the sender and receiver are on reachable network segments.
NDI HX crashes or fails on Linux
Confirm that FFmpeg 7 or later is installed. Some stable Linux distributions still provide older FFmpeg versions. Installing the current DistroAV package does not necessarily upgrade the system FFmpeg version.
DistroAV error code reference
DistroAV writes unique numerical error codes to the OBS log. Use this table to map a code to its meaning and the recommended action.
| Code | Message | What to do |
|---|---|---|
400 | Failed to start NDI Main Output | The global program output could not start. Check the OBS color format, NDI Runtime, output configuration and log context. |
401 | NDI library failed to load | The required NDI library was found or requested but could not be loaded correctly. Reinstall the current NDI Runtime and remove old library files. |
402 | Error loading QLibrary | OBS or Qt could not load a required library. Check architecture, plugin location, runtime installation and dependent libraries. |
403 | OBS-NDI is detected and needs to be uninstalled before DistroAV can work | Remove the old OBS-NDI plugin completely. DistroAV and OBS-NDI must not be loaded at the same time. |
404 | NDI library not found, DistroAV cannot continue | Install NDI Runtime 6.3 or later. |
405 | Error loading the NDI Library from path | The configured or discovered library path is invalid or unusable. Remove old NDI installations and reinstall the supported runtime. |
406 | NDI library could not initialize due to unsupported CPU | The system hardware does not meet the runtime CPU requirements. A software reinstall cannot correct an unsupported processor. |
407 | Error creating the NDI Receiver | The source receiver could not be created. Delete and recreate the source, verify the NDI Runtime and test another sender. |
408 | Error creating the NDI Frame Sync | The frame synchronization component could not be initialized. Test the sender in NDI Studio Monitor and recreate the source. |
409 | Update check failed because the main OBS window could not be obtained | Restart OBS and retry the update check. |
410 | NDI Output cannot start - Unsupported pixel format | Select a supported OBS Color Format. |
411 | Failed to initialize NDI Main Output | Check NDI Runtime, OBS color settings and output configuration. |
412 | Failed to create NDI Main Output | Disable the output, correct the configuration and enable it again. |
413 | NDI Output could not start - No audio or video data available | The filtered source does not currently provide compatible media data. Confirm that the source is active and supported. |
414 | Invalid or unknown behavior detected in configuration file | The saved plugin configuration is missing, invalid or from an incompatible version. Restart OBS. This error may appear once while the configuration is corrected. |
415 | NDI Sender data capture failed | The filter or output could not capture compatible source data. Review source activation, pixel format and filter configuration. |
416 | NDI Sender initialization failed | The sender could not be created. Remove and recreate the output filter and check the NDI Runtime. |
417 | Update check received an unexpected response | The update service returned data the plugin could not process. Retry later and confirm that the installed build is an official release. |
418 | Update check timed out | Check internet access, DNS, firewall rules and proxy configuration. |
419 | Update check request failed | Confirm that OBS is allowed to access the update service. |
421 | Update check could not open the update file | The downloaded or local update metadata could not be opened. Check file permissions and security software. |
422 | Update check could not verify the update file | The update metadata or downloaded file failed verification. Do not bypass verification. Download the current release from the trusted project source. |
423 | Failed to create NDI Preview Output | Check Studio Mode, color format, NDI Runtime and output settings. |
424 | OBS version does not meet the minimum required version | Update OBS Studio to version 31.1.1 or later. |
425 | NDI Library does not meet the minimum required version | Install NDI Runtime 6.3 or later. |
426 | NDI Main Output disabled because the format is not supported | Select a supported OBS output and color format. |
430 | NDI Source uses an unsupported video pixel format | Change the sender to a supported video or color format. |
Enabling DistroAV debug logging
Launch OBS with DistroAV debug options:
Supported development and diagnostic arguments include:
--distroav-debug--distroav-verbose--distroav-log=error--distroav-log=warning--distroav-log=info--distroav-log=debug--distroav-log=verbose--distroav-update-force=0--distroav-update-force=1--distroav-update-last-check-ignore--distroav-detect-obsndi-force=off--distroav-detect-obsndi-force=on
Diagnostic logging may produce a large amount of data. Enable it only while reproducing the problem.
Migrating from OBS-NDI to DistroAV
OBS-NDI was renamed to DistroAV around June 2024 after a request from the OBS Project to remove OBS from the plugin name. DistroAV is the continuation of the same open-source project, not an unrelated replacement. The normal migration process is:
- Install DistroAV.
- Confirm that OBS-NDI has been removed.
- Restart OBS.
- Verify the existing NDI sources and settings.
- Test all outputs before production.
DistroAV uses the same general settings as OBS-NDI, so a separate project conversion is normally unnecessary. DistroAV 6.1.1 and later installers on Windows and macOS can remove many older OBS-NDI installations automatically. Manual cleanup may still be necessary if OBS-NDI was installed from a ZIP file, installed into a nonstandard directory, or duplicated across user and system plugin directories.
Removing OBS-NDI on Windows
Delete:
Also use Add or Remove Programs if OBS-NDI was installed with an installer.
Removing OBS-NDI on macOS
Delete:
Also check:
Removing OBS-NDI on Debian or Ubuntu
Remove any manually created links from /usr/local as well.
Uninstalling DistroAV
Windows
If installed with the Windows installer, remove DistroAV through Add or Remove Programs. For current plugin packages, check:
Older DistroAV versions may have files in:
and:
NDI Runtime, NDI Tools and NDI SDK are separate components. Remove them only when they are no longer needed by other applications.
macOS
Open Finder and display hidden files with Command-Shift-. then delete:
Optional NDI components may exist in:
and:
Do not remove shared NDI components when another application depends on them.
Debian or Ubuntu
Remove the plugin:
Remove manually created links if present:
Optional NDI Runtime removal:
Flatpak
Remove the DistroAV Flatpak extension:
Remove the legacy plugin extension if it remains installed:
Development
DistroAV is developed publicly. The project source includes C, C++, CMake, shell scripts, build configuration, translations, packaging workflows and platform-specific installation resources.
Development requirements
Development starts with the requirements for building OBS plugins on the selected platform. Typical tools include:
- Git
- CMake
- A supported C and C++ compiler
- OBS development dependencies
- Qt dependencies
- NDI SDK files
- Platform packaging tools
- Clang-format
- GerSemi
- PowerShell on Windows
- Xcode command-line tools on macOS
- Debian or Ubuntu build dependencies on Linux
Windows build
Install common tools:
Clone the repository:
Build:
Create the installer:
macOS build
Install development tools:
Clone and build:
Copy the development plugin:
Linux build
Debian and Ubuntu are the officially supported Linux development environments documented by the project. Clone and build:
Package:
Install the generated package:
Code style
The project generally uses camelCase for methods, snake_case for variables, and third-party naming conventions when interacting with OBS, Qt, NDI, the standard library or other external APIs. The exact style depends on the surrounding library and existing code.
Testing
A standard acceptance test should cover every supported platform and verify plugin installation, OBS startup, successful module loading, Program Output, Preview Output, NDI Source, NDI Video Output Filter, NDI Audio Output, local loopback, remote sender and receiver, OBS shutdown, log output, upgrade behavior, uninstallation, missing-runtime behavior and unsupported-version behavior. Production releases should be tested on Windows, macOS and Linux.
Project history
The project was originally distributed as OBS-NDI. It became one of the established methods of connecting OBS Studio to NDI-based production workflows. In 2024, the project adopted the DistroAV name after the OBS Project requested that the plugin remove OBS from its name. The name changed, but the core objective remained the same: provide open-source NDI video and audio integration for OBS Studio.
The DistroAV 6.x generation introduced the new branding, NDI 6 support, revised source behavior, updated packaging, improved dependency detection, better error reporting, installation cleanup, output reliability improvements and continuing compatibility work.
Project maintenance
DistroAV is an open-source project rather than a conventional proprietary software company. It is maintained through the work of project maintainers, code contributors, reviewers, testers, translators, package maintainers, documentation contributors, financial supporters and project partners.
The upstream project is maintained by tytan652 and the wider DistroAV contributor community. EPEAK Studio supports the official upstream project through project management, partner relations, Apple and Microsoft code signing, code contributions and release lab testing. Community maintainers also support distribution-specific packages such as Flatpak and Ubuntu packages.
Supporting DistroAV
DistroAV is available free of charge, but maintaining a cross-platform media plugin creates recurring expenses. Project costs can include code signing, build infrastructure, release hosting, compatibility testing, hardware testing, NDI SDK integration, OBS compatibility work, package maintenance, documentation, development tools and project administration.
Commercial users and organizations that depend on DistroAV can support continued maintenance through the project Open Collective. Support can also be provided by:
- Contributing code
- Testing prereleases
- Reporting reproducible bugs
- Improving documentation
- Translating the interface
- Reviewing pull requests
- Maintaining packages
- Helping other users
- Funding development
Reporting a bug
A useful bug report should include:
- Operating system and version
- CPU architecture
- OBS Studio version
- DistroAV version
- NDI Runtime version
- Installation method
- Sender application or device
- Receiver application or device
- Source resolution, frame rate and format
- Network connection type
- Exact reproduction steps
- Expected result and actual result
- OBS log URL
- DistroAV error code
- Screenshots where relevant
- Results from NDI Test Pattern and NDI Studio Monitor
- Whether VPN, VLANs, groups, privacy or custom firewall rules are used
Reports such as "NDI does not work" are not sufficient for diagnosis.
Production checklist
Before a live production:
- Update OBS only after testing compatibility
- Install the supported DistroAV release
- Install the required NDI Runtime
- Remove OBS-NDI
- Use wired Ethernet
- Verify switch capacity
- Disable unnecessary VPN software
- Confirm firewall rules
- Confirm macOS local network permissions
- Confirm Avahi on Linux
- Check FFmpeg version for NDI HX on Linux
- Use clear source names
- Match frame rates where practical
- Match color configuration
- Verify audio sample rates
- Test every source and every output
- Test scene changes
- Test source disconnection and recovery
- Test for the full expected production duration
- Save an OBS profile and scene collection backup
- Keep a fallback signal path
- Record a local backup where possible
- Monitor OBS statistics and logs
Glossary
DistroAV — An open-source OBS Studio plugin that provides NDI input and output functionality.
OBS-NDI — The former name of DistroAV.
NDI Source — A DistroAV source that receives NDI video and audio in OBS.
Program Output — The complete live OBS composition transmitted over NDI.
Preview Output — The OBS Studio Mode preview composition transmitted over NDI.
Dedicated Output — An NDI output created from an individual source or scene using a filter.
NDI Runtime — The NDI software libraries required for NDI-enabled applications to send and receive media.
NDI Tools — A set of NDI utilities that can include monitoring, test, capture and configuration applications.
NDI Studio Monitor — An NDI receiver used to view and test available NDI feeds.
NDI Test Pattern — A known NDI test sender useful for diagnostics.
NDI Access Manager — A configuration utility used for groups, external sources, network addresses and other NDI settings.
mDNS — A local network discovery technology used by NDI in common configurations.
Avahi — A Linux implementation of local network service discovery used for mDNS.
NDI HX — An NDI transport profile that uses compressed video and may require additional decoding support.
Alpha Channel — Transparency information carried with an image or video signal.
Color Range — The numeric range used to represent black, white and intermediate image values.
Color Space — The standard used to interpret and reproduce image color.
Frame Sync — A process used to align incoming frames with the timing required by the receiver.
Latency — The time between media capture and its appearance at the receiving endpoint.
Jitter — Variation in packet or frame arrival timing.
Final notes
DistroAV makes OBS Studio a flexible NDI endpoint for receiving, composing, routing and transmitting video and audio over IP. A reliable DistroAV installation depends on more than the plugin itself. OBS compatibility, NDI Runtime, network design, firewall configuration, color management, source timing, system performance and testing all affect the result.
For simple workflows, setup may require only an NDI Source or Program Output. Larger productions should treat DistroAV as part of a complete media system and document every sender, receiver, network path, format and fallback procedure.
NDI® is a registered trademark of Vizrt NDI AB.