NDI使用Access Managere支持跨网段输入输出

Access Manager

By default, all NDI channels are in the Public group, visible to all NDI clients on the same subnet.
Adding a custom Output group (Groups tab) lets others access your system’s NDI output by adding a matching entry to their Receive group list. If you remove Public from your Output groups, only systems configured to receive one of your custom Output groups will see your NDI channels.
Similarly, removing Public from your Receive groups tells your local system to ignore channels that aren’t among the remaining Receive groups.

Add entries to the Receive from IP Addresses list in the Network tab to access NDI sources from a different subnet. Note that an IP Address entry can serve multiple NDI channels (e.g., NDI Scan Converter can supply 1 channel or many more).

The channel count matters – you must ensure that, starting from port 5960 and counting up, enough network ports are available for the maximum supplied by any one NDI source – plus one (for NDI server messaging). So, adding an IP Address for a system supplying one NDI channel to the Receive from IP list means ports 5960 and 5961 must be available. A second source serving eight NDI channels would need ports 5960 – 5968 to be free, etc.

在这里插入图片描述
The channel count matters – you must ensure that, starting from port 5960 and counting up, enough network ports are available for the maximum supplied by any one NDI source – plus one (for NDI server messaging). So, adding an IP Address for a system supplying one NDI channel to the Receive from IP list means ports 5960 and 5961 must be available. A second source serving eight NDI channels would need ports 5960 – 5968 to be free, etc.
.NDI跨网段工作方法:
一是通过Access Manager可以将跨网段的设备添加至本机以自动发现;
以配置输出组为例:
在这里插入图片描述
二是某些NDI解码设备可以手动拉取指定IP地址设备的NDI流,只要网络带宽允许也是可行的
在这里插入图片描述
三是在代码里发现设备结构体p_groups字段指定其它网段ip地址

// The creation structure that is used when you are creating a finder
typedef struct NDIlib_find_create_t
{	// Do we want to incluide the list of NDI sources that are running
	// on the local machine ?
	// If TRUE then local sources will be visible, if FALSE then they
	// will not.
	bool show_local_sources;

	// Which groups do you want to search in for sources
	const char* p_groups;

	// The list of additional IP addresses that exist that we should query for 
	// sources on. For instance, if you want to find the sources on a remote machine
	// that is not on your local sub-net then you can put a comma seperated list of 
	// those IP addresses here and those sources will be available locally even though
	// they are not mDNS discoverable. An example might be "12.0.0.8,13.0.12.8".
	// When none is specified the registry is used.
	// Default = NULL;
	const char* p_extra_ips;

#if NDILIB_CPP_DEFAULT_CONSTRUCTORS
	NDIlib_find_create_t(bool show_local_sources_ = true, const char* p_groups_ = NULL, const char* p_extra_ips_ = NULL);
#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS

} NDIlib_find_create_t;

参考文章:
https://www.newtek.com/ndi/sdk/
https://support.newtek.com/hc/en-us/articles/115005464147-Access-Manager

猜你喜欢

转载自blog.csdn.net/u014162133/article/details/106421349