LogoLogo
🛠️ Tools🗂️ SDK📄 White Paper
  • Getting Started
    • 🟣What is NDI?
    • 🆕Release Notes
    • 📄White Paper
      • Discovery & Registration
        • mDNS
        • Discovery Service
        • Manual Connection
        • NDI Groups
      • NDI Protocols
        • Reliable UDP - NDI 5
        • Multipath TCP - NDI 4
        • UDP with Forward Error Correction – NDI 3
        • Single TCP – NDI 1
      • NDI Related Network Ports
      • Getting video across the network
      • Network Layout
      • Bandwidth
        • NDI High Bandwidth based on SpeedHQ2 (8bit 4:2:2)
        • NDI High Bandwidth based on SpeedHQ7 (8bit 4:2:2:4)
        • NDI HX2 h.264 (8bit 4:2:0)
        • NDI HX2 h.265 (8bit 4:2:0)
        • NDI HX3 h.264 (8bit 4:2:0)
        • NDI HX3 h.265 (8bit 4:2:0)
        • NDI Proxy and bandwidth optimization
      • Network Interface Settings
      • NIC Selection
      • Encoding and Decoding
      • Multicast
      • NDI Administrative Settings
      • Synchronization
      • NDI in the Cloud
    • Glossary
      • NDI Terminology
      • Industry Terminology
  • Using NDI
    • Introduction
    • NDI for Video
      • Digital Video Basics
      • NDI Video Codecs and Format Matrix
      • NDI Encoding Support Matrix
        • Practical NDI Receivers Format Support
        • Practical NDI Transmitters Support
        • Summary Table
      • Interoperability Scenarios
    • NDI for Audio
      • Digital Audio Fundamentals
      • Audio Over IP
      • Technical Facts About NDI for Audio
      • Use Cases
      • Products Using NDI for Audio
    • ⚒️NDI Tools
      • Release Notes
      • Installing NDI Tools
        • Software License Agreement
        • Privacy Policy
      • NDI Tools Launcher
      • NDI Tools for Windows
        • Access Manager
        • Bridge
          • NDI Bridge automation
          • Configuring Port Forwarding
          • Bridge Tool Logging
        • Remote
        • Router
        • Screen Capture
        • Screen Capture HX
        • Studio Monitor
        • Test Patterns
        • Webcam Input
        • Discovery
          • Getting Started with Discovery
          • Discovery Server Additional Information
      • NDI Tools for Mac
        • Access Manager
        • Scan Converter
        • Router
        • Test Patterns
        • Video Monitor
        • Virtual Input
        • Discovery
          • Getting Started with Discovery Service
          • Discovery Server Additional Information
          • Launch Discovery Server using Command Line for MacOS
      • Plugins
        • NDI for After Effects
        • NDI for Premiere Pro
        • NDI Output for Final Cut Pro
        • NDI for VLC
        • Audio Direct
        • OBS
    • Utilities
      • Analysis
    • Using NDI with Software
      • Getting Started with NDI in OBS for Windows or Mac
      • Using OBS Studio as a Commentary System
      • Using NDI Tools as a virtual camera in Mac
      • Using NDI and Dante on the same Network
      • Use OBS video + audio on Zoom with macOS
    • Using NDI with Hardware
      • NDI HX upgrades for cameras
      • How to Activate Panasonic Cameras for NDI HX1 — Step-by-Step
      • Recommended Network Switch Settings for NDI
  • Developing with NDI
    • Introduction
    • 📂SDK
      • Release Notes
      • Licensing
      • Software Distribution
        • Header Files
        • Binary Files
        • Redistributables
        • Content Files
        • Libraries
        • NDI-SEND
        • NDI-FIND
        • NDI-RECEIVE
        • Utilities
        • Command Line Tools
      • CPU Requirements
      • Dynamic Loading of NDI Libraries
      • Performance and Implementation
      • Startup and Shutdown
      • Example Code
      • Port Numbers
      • 🔧Configuration Files
      • Platform Considerations
      • NDI-SEND
      • NDI-FIND
      • NDI-RECV
      • NDI-Recv Discovery, Monitor, and Control
      • NDI Routing
      • HDR
      • Command Line Tools
      • Frame Types
        • Video Frames
        • Audio Frames
        • Metadata Frames
      • Windows DirectShow Filter
      • 3rd Party Rights
      • Support
    • Advanced SDK
      • Release Notes
      • Licensing
      • Overview
      • Configuration Files
      • NDI SDK Review
        • Sending
          • Asynchronous Sending Completions
          • NDI Sending On High Latency Connections
        • Receiving
          • Custom Allocators
            • Video Allocators
            • Audio Allocators
          • Dynamic Bandwidth Adjustment
          • NDI RECV Event Monitoring and Commands
        • Finding
        • Video Formats
          • Receiver Codec Support Level
          • Frame Synchronization
      • Genlock
      • AV Sync
        • Guidelines
        • Creating and Destroying Devices
        • Recovering Audio
      • Using H.264, H.265, and AAC Codecs
        • Sending Audio Frames
        • Sending Video Frames
        • H.264 Support
        • H.265 Support
        • AAC Support
        • OPUS Support
        • Latency of Compressed Streams
        • Stream Validation
      • External Tally Support
      • KVM Support
      • NDI Advanced SDK FPGA Example Designs
        • Prebuilt uSD Images
        • NDI FPGA Reference Design
          • FPGA Projects
            • Changelog
          • C++ Application Code
            • Changelog
          • linux_kernel
            • Changelog
          • uSD Image Builder
            • Changelog
        • Changelog
    • Utilities
      • Unreal Engine SDK
        • Release Notes
        • Licensing
        • NDI Plugin Installation
        • Simple Setup of Broadcast and Receivers
        • NDI Broadcast Actor
        • NDI Receiver Actor
        • NDI Media Assets
        • Getting Started with Example Blueprint Projects
        • Advanced
      • Free Audio
      • Bridge Service
        • Installation
          • Silent Installation
        • Configuration
          • Web UI
          • Configuration File
          • Manual API Key Management
        • Webhooks
        • WebSockets
        • API
    • NDI Certified
      • Certification Guidelines
        • Interoperability Requirements
        • Technical Requirements
      • Certification Process
        • Pre-certification Checklist
        • Device Testing Methods
          • Camera
          • HDMI Encoder
          • SDI Encoder
          • Decoder
          • NDI Controller
          • NDI Monitor
          • Multicast Testing
        • Detailed process
    • Metadata
      • Metadata Sources
      • Metadata for XML
      • XML Validation
      • Metadata Elements
      • Proposed New Metadata Messages
      • PTZ and Control Messages
      • Undocumented Mysteries
  • Developer Guides
    • Decoding with NDI
    • NDI Bridge Deployment
    • Receiver Discoverability, Monitoring, and Control Overview
  • FAQ
    • Index
    • NDI Tools
      • What is the NDI Analysis Tool and where do I get it from?
      • Why does my NDI connection stay active once the source is offline?
      • Why are my changes to the NDI JSON configuration file not being saved?
      • Why is the license for my Panasonic camera not active?
      • How does registration for NDI Tools work?
      • The time code on my file is incorrect, how do I change it?
      • How can I make NDI Tools launch automatically?
      • What is the NDI ECCN?
      • How Do I Uninstall NDI Software?
      • Does Discovery Server support Command Line on MacOS?
      • How do I use NDI output with Microsoft Teams
      • Where is Screen Capture (HX) for Mac?
    • NDI Certified
      • What is the NDI Certification Program?
      • Why did you start this certification program?​
      • What happens to my device after it's certified?
      • Is certification mandatory to be a partner of NDI?​
      • I am an OEM manufacturer, can my products be certified?​
      • How long does the certification process take?
      • How do I become certified?​
      • What happens if my product doesn’t meet the requirements for Certification?​
      • Are there any fees to become NDI Certified?
    • Common Issues
      • I'm having trouble getting multicast set up.
      • I'm having trouble with my NDI HX License
      • Why can't I find my Android 14-based NDI devices on my network?
      • Why won’t NDI Tools install on my Windows PC?
      • How do I enable NDI in “New” Microsoft Teams (Windows only)?
      • Why can’t HX Capture display the full resolution of my iPad or iPhone?
      • The NDI HX Camera app won't launch on older phones and iOS
      • Why won't MacOS Sonoma (14.1) recognize NDI Tools as a virtual camera?
      • I'm having issues with Virtual Input for macOS
      • I'm having issues with Final Cut Pro
      • NDI Camera App Issue
    • SDK
      • Where can I find the source code for the FPGA board?
      • What system resources are required to support a design including the NDI FPGA Codecs?
      • Why can’t my h264/265 video be received by an NDI receiver when using the embedded SDK?
      • I haven't received the email with the download.
      • Can I use the Unreal SDK on Mac?
      • What are the Differences Between the NDI SDK and the NDI Advanced SDK
    • ✨NDI 6
      • Do I need to upgrade to NDI 6 if I'm not using the new features?
      • Is there a fee to upgrade to NDI 6
      • Why doesn't my existing Vendor ID work with NDI 6?
      • How can I get a previous version of NDI Tools or the SDK?
    • NDI HX License Upgrades
      • What is happening with NDI HX Upgrades?
      • Will my existing HX-upgraded camera be affected?
      • I bought a camera before June 30, 2025, but didn't buy an HX license. Can I still get one?
      • I bought a license and a camera but didn't redeem it until after. Can I still get an HX license?
      • If my HX upgrade fails can I transfer the license?
      • Can I sell my upgraded HX camera and keep the license?
      • Will my NDI version work with my current HX license?
      • What does the HX upgrade sunset program mean for camera manufacturers?
      • What will NDI Support do for licenses after the sunset date?
      • I factory reset my camera and forgot the license. Can you help me get it back?
Powered by GitBook

2024 @ NDI Vizrt AB.

On this page
  • Introduction
  • Server
  • Configuration
  • Command-Line Options
  • Console Output
  • NDI Discovery clients
  • Source clients
  • Redundancy and Multiple Servers (for sources)
  • Receiver clients
  • Redundancy and multiple servers (for receivers)
  • Installer Availability & Platform Support
  • Windows Installer Features
  • Silent Installation
  • Interactive Installation
  • License Agreement
  • Installation Location Selection
  • Change Folder Destination Location
  • Install Screen
  • Port Selection and Address Binding Selection
  • Linux Installer Features
  • Runing as a Service in Linux
  • SystemD framework
  • Init.d (for systems without systemd)
  • Changelog

Was this helpful?

Export as PDF
  1. Using NDI
  2. NDI Tools
  3. NDI Tools for Mac
  4. Discovery

Discovery Server Additional Information

VERSION 6.2

Introduction

In modern networked media workflows, efficient discovery and management of audio and video sources are essential. The NDI Discovery Server is a dedicated server and protocol designed to facilitate seamless search, monitoring, and control of NDI receivers and indexing of respective sources within a network. This can run as a service (on a remote server) or an application (on your local machine) that accepts incoming connections with senders, finders, and receivers, and coordinates amongst them all to ensure they are all visible to each other. By providing a centralized registry, the service enables devices to automatically announce their presence, retrieve real-time status updates, and establish low-latency connections with minimal configuration. In NDI version 6.2, this new NDI Discovery Server adds new capabilities of discovery, monitoring and control for NDI receivers, compared to previous versions, that only supported advertising and listing NDI sources.

To enable seamless integration with third-party applications, a C API is available for integration, allowing developers to communicate directly with the NDI Discovery Server. This API provides functionalities for querying available NDI sources, subscribing to real-time updates, and managing connections efficiently, ensuring interoperability across various applications and workflows.

As a final note, the NDI Discovery Server is an alternative to using mDNS, which allows quite a significant reduction in network traffic compared to the latter.

Server

The Server will be deployed as a standalone application or as a system service, named NDI Discovery Service, and will provide flexibility for different deployment needs (platforms).

Both 32-bit and 64-bit versions of the NDI Discovery Server are available, although the 64-bit version is recommended. The server will use very little CPU usage although, when there are a very large number of connections (representing sources, receiver listeners and receiver advertisers), it might require RAM and some network traffic between all sources to coordinate source lists.

Configuration

To configure the Discovery Server for NDI clients, you can use NDI Access Manager (included in the NDI Tools bundle) to enter the IP address of the machine running the Discovery Server.

Alternatively, you can run the Discovery Server with a command-line option to specify the network interface (NIC) it should use:

"NDI Discovery Service.exe" -bind 192.168.1.100

This ensures that the Discovery Server advertises only on the specified IP address. Similarly, you can specify a port number for the Discovery Derver using:

"NDI Discovery Service.exe" -port 5400

This enables you to use a non-default port or run multiple Discovery Servers for different groups of sources on the same machine. If a port number of 0 is specified, the operating system will automatically assign a port, which will be displayed at runtime.

Command-Line Options

"NDI Discovery Service.exe" -bind <ip_address> -port <port_number> -config <json path> -help

  • General Options (Windows & Linux):

    • -bind <ip_address> - This is an optional argument that specifies the IP address to bind the service to (default: 0.0.0.0).

    • -port <port_number> - This is an optional argument that sets the port number (default: 5959).

    • -config <json path> - This is an optional argument that loads configuration from a JSON file. This option will override both -bind and -port options as it will take precedence

    • -help - Displays available command-line options.

  • Additional options for Linux:

    • -service - Runs the NDI Discovery in service mode for background execution.

  • JSON configuration file:

The default paths for the configuration file are:

  • Linux:

    • /etc/ndi/ndi-discovery-service.v1.json

    • /usr/local/etc/ndi/ndi-discovery-service.v1.json

  • Windows:

    • C:\ProgramData\NDI\ndi-discovery-service.v1.json

An example of the JSON configuration file can be seen below:

{
"binding": "127.0.0.1",
"port_no": "5959"
}

Console Output

When executed as a standalone application, the NDI Discovery will provide a console output with some relevant information regarding the number of registered sources, listeners and advertisers, that connect or disconnect at a given time. This console will not show up when the application is running in service mode

Log explanation:

  • Underlined in red, is the notification when a new receiver listener connects.

  • Underlined in green, is the notification when a new receiver advertiser connects and the respective NDI receivers it advertises.

  • Underlined in orange, a notification of a newly advertised NDI source.

  • The “Listening…” is just a progress to signal that the service is working properly, waiting for new connections, either from receiver or source clients.

NDI Discovery clients

Clients are entities that communicate with the NDI Discovery Server. They can be categorized as follows:

Source clients

Source clients should be configured to connect with the Discovery Server instead of using mDNS to locate sources. When there is a discovery server, the SDK will use both mDNS and the Discovery Server for finding and receiving to locate sources on the local network that are not on machines configured to use discovery. In the future, Sources will also have the capability to be monitored and controlled by the NDI Discovery protocol

For Source senders, if an NDI Discovery Server is specified, the mDNS mechanism will not be used; these sources will only be visible to other finders and receivers that are configured to use the NDI Discovery Server.

Source Senders: These clients advertise or register NDI sources with the server, making them easily discoverable.

Source Finders: These clients query the server to locate sources that have been advertised by any Source Sender.

Redundancy and Multiple Servers (for sources)

Within NDI version 6 there is full support for redundant NDI Discovery Servers. When one configures a discovery server it is possible to specify a comma delimited list of servers (e.g., “192.168.10.10, 192.168.10.12”) and then they will all be used simultaneously. If one of these servers then goes down then as long as one remains active then all sources will always remain visible; as long as at least one server remains active then no matter what the others do then all sources can be seen.

This multiple server capability can also be used to ensure entirely separate servers to allow sources to be broken into separate groups which can serve many workflow or security needs.

Receiver clients

Receiver clients are a new addition to NDI Discovery, beginning from NDI version 6.2, as earlier versions only supported source discovery. In addition to discovery, these new clients can also be used to monitor and control remote NDI receivers.

Receiver Advertisers: Advertise NDI receivers

Receiver Listeners: Monitor and Control NDI receivers

Monitoring is related to getting instant or more static information from a given receiver. In Version 1, we currently support events for the following receiver properties:

  • source-name: NDI Source to which the receiver is connected to

  • source-url: The URL of the NDI Source

  • connection-state: Connected or Disconnected

  • audio-present : True of False

  • audio-channels: Number of audio channels

  • audio-sample-rate: Audio sample rate

  • audio-receive-mode

  • video-present: True or False

  • video-codec: Video codec name (i.e. shq2)

  • video-resolution: i.e. 1920x800

  • video-frame-rate: i.e. 24000/1001

  • video-frame-type: i.e. progressive

  • video-color-primaries: i.e. bt_709

  • video-transfer-function: i.e. bt_709

  • video-matrix-coefficients: i.e. bt_709

  • video-has-alpha: True or False

  • video-receive-mode: i.e. single_tcp

In the future the number of properties to be monitored will be expanded. Receiver clients only connect to the Discovery Server directly, and unlike source clients, they rely solely on the server to advertise and to listen/query for receivers in the network. The new APIs can be consulted in the NDI SDK documentation for more details.

Redundancy and multiple servers (for receivers)

Receiver Advertisers: Like their source counterpart, Receiver Advertisers can also accept a comma-separated list of servers (e.g., "192.168.10.10, 192.168.10.12"). In this case, the receivers will be announced to all specified servers simultaneously.

Receiver Listeners: The current implementation relies on the user to instantiate the listener and implement logic that enables the Receiver Listener to detect when the server is no longer operational. Once detected, it should then connect to an alternative, redundant Discovery Server available on the same network.

Installer Availability & Platform Support

The Discovery Server (DS) installer is available for both Windows and Linux, ensuring broad compatibility across different environments.

We provide pre-built DS installer binaries for the following architectures:

  • Intel x86 / x86-64 (commonly used in desktops, servers, and cloud instances)

  • ARM (suitable for embedded systems and energy-efficient computing)

  • Raspberry Pi (optimized for low-power SBCs)

Windows Installer Features

The Windows installer for the Discovery Server (DS) provides flexible installation options to suit different deployment needs.

Silent Installation

The installer supports silent installation via command-line arguments, enabling automated deployments without user interaction.

Example usage:

setup.exe /verysilent /port=1234 /binding=127.0.0.1

/verysilent installs Discovery Service without displaying any UI prompts.

/port=<port number> specifies the listening port.

/binding=<ip address> restricts DS to listen only on the local machine.

Interactive Installation

After starting the installer, you’ll be greeted with the following:

License Agreement

Installation Location Selection

If the you want NDI Discovery to run as a service, you must select the corresponding checkbox. Otherwise, it will be installed as a standalone application that can be launched manually like any other program.

It’s also possible through the application itself, to register it later as a service by running the following commands:

NDI Discovery.exe install - Installs the service. (or in this case re-installs it)

NDI Discovery.exe remove - Uninstalls the service. (from the command line)

NDI Discovery.exe start - Starts the service. (from the command line)

NDI Discovery.exe stop - Stops the service. (from the command line)

Change Folder Destination Location

Install Screen

Port Selection and Address Binding Selection

This screen allows the user to configure the port where the service will be launched and the IP address to which it will be bound (useful if the machine has multiple network interfaces). If left unchanged, the address will be selected automatically, and the service will bind to the first available network device and IP detected on the system.

At the end of the installation, this documentation will be shown:

Linux Installer Features

There’s also a Linux installer available that will universally install binaries for all supported platforms, being those:

  • aarch64-newtek-linux-gnu

  • aarch64-rpi4-linux-gnueabi

  • arm-newtek-linux-gnueabihf

  • arm-rpi1-linux-gnueabihf

  • arm-rpi2-linux-gnueabihf

  • arm-rpi3-linux-gnueabihf

  • arm-rpi4-linux-gnueabihf

  • i686-linux-gnu

  • x86_64-linux-gnu

The installer is an automated installation script named "Install_NDI_Discovery_Server_v6.sh". Upon execution, the user will be presented with a license agreement document that must be accepted for the installation to proceed automatically. The installation process is straightforward, with all binaries being placed in the Install_NDI_Discovery_Server_v6/bin directory, located within the folder where the installation script was initially executed.

Runing as a Service in Linux

SystemD framework

1

To run NDI Discovery as a service on Linux using systemd, the user must use the provided template, fill it out appropriately, and save it as /etc/systemd/system/ndi-discovery.service.

2

It then needs to replace the ${INSTALL_PATH} with the actual path of the binary to be launched.

3

To enable and start the service, the user needs to run the following commands:

4

This setup allows users to simply edit the /etc/default/ndi-discovery file to specify their installation directory, making it flexible without modifying the service file itself.

Init.d (for systems without systemd)

1

Create the following script and save it at /etc/init.d/ndi-discovery

2

Make it executable with:

sudo chmod +x /etc/init.d/ndi-discovery

3

Change $INSTALL_PATH to the path where the binary is located

4

Register the service with:

sudo update-rc.d ndi-discovery defaults

5

Start the service

sudo service ndi-discovery start

6

Enable the service to start on boot

sudo update-rc.d ndi-discovery enable

Changelog

NDI 6.2.0

3/06/2025 - Initial creation

PreviousGetting Started with Discovery ServiceNextLaunch Discovery Server using Command Line for MacOS

Last updated 5 days ago

Was this helpful?

⚒️
Figure 1-Console log example
License agreement
Installation location selection
Change folder destination location
Install Screen
Port Selection and Address Binding Selection
img 1
img 2