The NDI plugin offers a fairly easy way to send OBS video signal (presumably other applications can take advantage of this too) to another OBS instance on another machine. This can come in handy for numerous reasons such as splitting up workloads between machines by capturing output from one machine, such as gaming computer, to stream with a dedicated unit that interfaces with YouTube. This has advantages in that you can move the machine doing the heavy lifting into another room or across the room as to not hear the fans and so forth. In my case, my primary machine is getting long in the tooth. I prefer the setup I have as far as the screen layout and height of the computer as well as the location. I use my AMD Desktop / server / workstation machine to talk to YouTube or Twitch directly with that OBS instance and record locally in effect freeing up my laptop from quite a bit of the workload.
At the time of writing, there isn’t an RPM available and the instructions out there along with what to expect seems lacking at best, so, I thought I would take what I know and compile it into one easy, step-by-step guide here for openSUSE. Your mileage may vary depending on your distribution.
For starters, you need to get the software packages from GitHub.
Download the following:
This is a Debian package meant for Debian/Ubuntu so you may be thinking, “how am I supposed to use this?” …and that is a reasonable question. The solution is a tool that is not often talked about. It is also likely not recommended by most people but I am not most people. That tool is called “Alien“.
To install Alien, navigate here and just click on the appropriate experimental package for your version of openSUSE:
Alternatively, you can use the terminal method, which will very a bit between distributions
sudo zypper ar https://download.opensuse.org/repositories/utilities/openSUSE_Factory/ utilties
sudo zypper ref
sudo zypper install alien
sudo zypper ar https://download.opensuse.org/repositories/utilities/openSUSE_Leap_15.2/ utilties
sudo zypper ref
sudo zypper install alien
To explain each of the lines that I am expecting you to put in the terminal because you should NEVER just trust some random commands on the internet. First of all, I stand behind this as CubicleNate, and I do my best to not be wrong and I’d like to keep doing these things. You can also reacho ut to me directly using any of these methods.
Once the installation of Alien is complete. You will have to take the two deb packages previously downloaded and convert them.
Using a terminal, navigate to the location of the downloaded packages and run the following
sudo alien -r libndi*.deb
sudo alien -r obs-ndi*.deb
sudo zypper in ./libndi*.rpm obs-ndi*.rpm
Now your are ready to set up OBS!
Using this reference, I made the adjustments to my firewall but it didn’t work. Perhaps I am missing something and I would love to edit this article accordingly but opening up both tcp and udp ports 5960 through 5968 as well as having the mDNS port active did not allow me to utilize the NDI plugin with firewalld active. Either the documentation is out of date, in correct or there is a user error on my part and I couldn’t find the appropriate logs to tell me otherwise. Therefore, I just deactivated the firewall on both the source and destination machines.
sudo systemctl stop firewall
This is the point where you should be sorely disappointed with these instructions but again, I would like to improve this and will gladly listen to any input.
The next step is to open up OBS-Studio (v25 and latter is required) on both machines. On the source machine, go to Tools > NDI™ Output settings
Then set the output preferences. In my case, I had not interest in sending the “Preview Output” only the “Main Output” and label it with the hostname; just in case I might do this with another machine.
On the Destination OBS machine, you have to add the NDI Source. This is just one of the many options you have available as a source.
For the source name, select the drop-down and the appropriate available source. I didn’t mess with any of the other settings so your mileage may vary on this portion of the instructions as well.
And that is it. Your NDI Source is just another input like a webcam or video signal and you are off to the streaming or production races.
The whole firewall thing has me a bummed out a bit. I have wrestled around with it far too long but at least I know that lowering my “shields” will allow for transporters to work. Not ideal but I am within my firewalled off house, I just happen to like security in layers.
I want to note that the latency on this is VERY low. I mean incredibly low. I have tested this by playing a game on one machine and using the output on another machine with almost no latency perceived. It is quite the incredible technical miracle and I am quite grateful.
I also want to make the vintage computer tie-in. The NDI plugin is developed by Newtek, the makers of the Video Toaster that was very popular on the “big box” line of Amiga computers from the 1990s. So, in a way, I feel like I have a little bit of that incredible Video Toaster tech on my openSUSE machine.