Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

By default, To allow NDI stream discovery you can use one of the following options:

  • mDNS Multicast Discovery

  • NDI Discovery Server

Configuring NDI stream discovery using mDNS Multicast Discovery

NDI uses the mDNS (Bonjour / Zeroconf) discovery mechanism to advertise sources on a local area network, such that the NDI receiving device, which in this case is Zixi Broadcaster, can automatically discover and offer those sourcescreate a zero-configuration environment for discovery of NDI streams available on the LAN. Through mDNS, devices such as the Zixi Broadcaster can discover available NDI streams for processing. The mDNS (Bonjour / Zeroconf) discovery mechanism should be installed as required according to the system's OS, as described in the OS Support section.

This means that there are different requirements depending on the type deployment:

  • Using NDI within a local area network – on a local area network NDI will use the discovery mechanism to advertise the sources and Zixi Broadcaster will automatically discover these streams, while listing them in the Stream parameter of the NDI input stream. 

  • Using NDI in the cloud – to make the streams discoverable in the cloud, you need to deploy an NDI Discovery Server and configure the NDI plug-in with the settings included in the following example:

Code Block
languagejson
{
    "ndi": {
        "groups": {
            "recv": "\"public\"",
            "send": "\"public\""
        },
        "multicast": {
            "recv": {
                "enable": false,
                "subnets": ""
            },
            "send": {
                "enable": false,
                "netmask": "255.255.255.0",
                "netprefix": "239.192.136.100"
            }
        },
        "networks": {
            "discovery": "22.127.94.57",
            "ips": ""
        },
        "tcp": {
            "recv": {
                "enable": false
            },
            "send": {
                "enable": false
            }
        },
        "unicast": {
            "recv": {
                "enable": false
            },
            "send": {
                "enable": false
            }
        }
    }
}

Anchor
OS-Support
OS-Support
OS Support

The use of mDNS requires operating system support as follows:

  • Windows - Windows 10 has mDNS support built in, which is necessary for any NDI applications running on Windows.

  • CentOS 7 - The recommended platform for the Zixi Broadcaster is CentOS 7. mDNS support is provided by the Avahi package which typically is not installed by default on CentOS 7.

To install Avahi, run the following commands on the server hosting the Zixi Broadcaster:

Code Block
# sudo yum install avahi
 # sudo service avahi-daemon start

Enabling Multicast Network Support

The mDNS Ethernet frame is a multicast UDP packet that broadcasts to:

NDI config file location

  • MAC address 01:00:5E:00:00:FB(for IPv4)

  • IPv4 address 224.0.0.251

  • UDP port 5353

You need to verify that the LAN where NDI streams are present is multicast enabled and that all systems needing access to NDI streams, such as the Zixi Broadcaster, do not block mDNS via their firewall.

Configuring NDI stream discovery using NDI Discovery Server

The configuration process requires modifying the NDI Config File with the relevant settings, as explained below and placing the new file in the relevant location on the server.

To configure the NDI Config File:

  1. Locate the NDI Config File:

  • On Windows: %PROGRAMDATA%\NewTek\NDI\ndi-config.v1.json

  • On Linux: $HOME/.newtek/ndi-config.v1.json

InfoOn Linux the NDI config files should be placed in the home directory of the user which Broadcaster is running as root. Thus, the file must be located at /root
  • /.newtek/ndi-config.v1.json

Specifying the NDI Discovery Server

To specify NDI Discovery Server:
  1. Open ndi-config.v1.json.

  2. In the "networks" section, under "discovery" add the discovery server’s IP, which is the address of a host where NDI Discovery Server is working.
    For example, if you have it working on 192.168.0.253, then your config will have this section:

    Code Block
    languagebash
    "networks": {"ips": "","discovery": "192.168.0.253"},
  3. Set the Unicast setting to ‘true’.

    Code Block
     "unicast": {
               "recv": {
                   "enable": true
                    },
                "send": {
                    "enable": true
                }
  4. Set the TCP setting to ‘true’.

    Code Block
    "tcp": {
               "recv": {
                   "enable": true
               },
               "send": {
                    "enable": true
                }
  5. Save the Config File.

  6. If using Linux, place the edited Config File in the home directory of the user which Broadcaster is running as root. Thus, the file must be located at /root/.newtek/ndi-config.v1.json.

  7. Restart the zixibc service.

    Code Block
    # systemctl stop zixibc
    # systemctl start zixibc

Config File Configuration Example:

Code Block
languagejson
{
    "ndi": {
        "groups": {
            "recv": "\"public\"",
            "send": "\"public\""
        },
        "multicast": {
            "recv": {
                "enable": false,
                "subnets": ""
            },
            "send": {
                "enable": false,
                "netmask": "255.255.255.0",
                "netprefix": "239.192.136.100"
            }
        },
        "networks": {
            "discovery": "22.127.94.57",
            "ips": ""
        },
        "tcp": {
            "recv": {
                "enable": true
            },
            "send": {
                "enable": true
            }
        },
        "unicast": {
            "recv": {
                "enable": true
            },
            "send": {
                "enable": true
            }
        }
    }
}