NDI

dalegaard

New Member
Yes I just saw stephanels solution to registering the output. I was not aware you could register a menu in the frontend, but that seems like a very nice way to do it. I'll probably use that for my plugin as well :)

I talked to Newtek last week and was informed that the DLLs are redistributable. This is fine for Windows, but no use for Linux(which is my preferred platform) because Newtek currently only distributes non-PIC static libraries. We'll see how things develop with NDI, but I know Newtek was very interested in getting support in OBS. They may be more open to a more liberal license now that the code is in place and only licensing is an issue, and stephanels library, which uses the DLLs directly, is obviously a much cleaner solution than my IPC-based library.
 

dodgepong

Administrator
Community Helper
After spending some more time learning and talking to people, I think the IPC solution will be the best one for OBS. It will allow us to distribute a plugin with OBS that adds NDI support baked-in without requiring the user to download extra libraries, and lives in a less legally gray area of the GPL. Yes, it could be argued that it breaks the spirit of the GPL, but it's a line that I believe OBS has already crossed in other areas, and at the very least it has been established that it is legal. So I'm looking forward to seeing how your bridge turns out, dalegaard. :)
 

dalegaard

New Member

dodgepong

Administrator
Community Helper
You can absolutely use that repo, but you have to build it yourself. OBS cannot distribute a build of that repo.
 

dalegaard

New Member
NewTek just released a beta of their version 2 SDK. They now allow dynamic linking on all operating systems, but I'm not sure if this changes anything wrt. being able to distribute fully working NDI support in OBS. I still believe that a IPC based solution is required. Can any of you with access to the SDK look into the wording of the new license and give your ideas here?

I'm close to having a working version of my plugin for Windows, but will instead be contributing to Palakis' version if it turns out that it would be possible to dynamically link in some way.

BR.
 

dodgepong

Administrator
Community Helper
An IPC-based solution is still the best for something that can be included with OBS itself.

The SDK changes release the headers under an MIT license, which is a good change. This means that a plugin can be developed and distributed under the GPL2, but still require the user to download NDI redistributables.

With an IPC solution, a non-GPL solution can be created and compiled all-inclusive with everything NDI needs to work, and the binary can be bundled with OBS with an IPC-based plugin, which means that users would not need to download anything other than just OBS.
 

dodgepong

Administrator
Community Helper
No problem. Looking forward to trying the Windows version of your plugin! Are you planning on working on a Mac version as well?
 

mtnorbeach

New Member
I've fallen behind on the project, as I still need Windows and OS X support. However I figured it was time to publish, so the projects can be found here:
https://github.com/dalegaard/obs-studio/tree/feature_ndi
https://github.com/dalegaard/ndiflbridge
Currently only Linux is supported, but everything appears to work pretty nicely. I'm sure there are still some bugs left around, so don't go using this in production just yet :-)

Hi, if I follow the install instructions for Linux Ubuntu here: https://github.com/dalegaard/obs-studio/commit/bb111c7642ac1294007e821fdad072129d2f3a81 will I end up with a working version of OBS Studio that has NDI working?

Reading through the install/compile instructions I can't see how NDI is brought into the compile, so I am assuming that NDI is in this OBS Studio source code? I'm not a developer so this is all a bit over my head!

UPDATE

I think I'm making progress. I worked out that I needed fo use OBS Studio NDI feature source code from here: https://github.com/dalegaard/obs-studio.git

I then followed the compilation commands here: https://github.com/dalegaard/obs-studio/commit/bb111c7642ac1294007e821fdad072129d2f3a81

But I get an error which I have posted about here: https://obsproject.com/forum/threads/ppa-for-ubuntu-14-10.21082/page-3#post-256678
 
Last edited:
I work for NewTek and would like very much to help make NDI available for OBS and we'd be happy to help make this happen. I'd like to make this as easy as possible for all users (without the need to compile the code). We added dynamically loadable DLLs in recent versions and the headers under the MIT license. We'd also be happy to write an installer if this is something that the community would like. Let us help make this happen for the benefit of everyone ...
 

dodgepong

Administrator
Community Helper
To be honest, the main need on OBS's side is just people to do the coding at this point. I think Newtek has made everything available that they can, unless they want to contribute code to OBS as well.

The NDI plugin with the most momentum right now is Palakis' obs-ndi plugin, which is currently usable only on Windows at the moment. The downside of this plugin is that it requires users to install the NDI redistributable. Personally I would prefer the @dalegaard plugin to be included in OBS for distribution, because it does not require an extra download (though it accomplishes this by using IPC, which a few users might object to on principle). However, it only works on Linux, and I don't think he plans on adding Windows support.

I would love to see NDi support for OBS get expanded as well, but right now it's a matter of finding someone who wants to spend time working on it.
 

dodgepong

Administrator
Community Helper
Nothing new to my knowledge beyond what I wrote in my last post above. You can get the NewTek NDI Redistributable for use with @Palakis's plugin here: http://new.tk/NDIRedistV2

I exchanged a few messages with Andrew Cross, but I am not sure what the status of his investigation is right now.

NDI support won't get added to OBS proper unless someone actually finishes a plugin for it. I'd love to see proper NDI support as well, but it won't happen unless someone does it.

FYI, the /r/obs subreddit isn't a great place to get the attention of OBS developers. It's not an official support site, and isn't really checked by very many people at all.
 

Kevin Ross

New Member
Nothing new to my knowledge beyond what I wrote in my last post above. You can get the NewTek NDI Redistributable for use with @Palakis's plugin here: http://new.tk/NDIRedistV2

I exchanged a few messages with Andrew Cross, but I am not sure what the status of his investigation is right now.

NDI support won't get added to OBS proper unless someone actually finishes a plugin for it. I'd love to see proper NDI support as well, but it won't happen unless someone does it.

FYI, the /r/obs subreddit isn't a great place to get the attention of OBS developers. It's not an official support site, and isn't really checked by very many people at all.

I've used @Palakis plugin, and it works quite well. He has binaries built for Windows and can be dropped directly into an OBS Studio installation. I don't think there's a need to install the NewTek redistributable, because he includes the .DLL in his binary download.

I've written a telestrator app that uses NDI, and it works quite well with OBS and the NDI plugin. I think the plugin is ready for inclusion in OBS proper, since the headers are MIT licensed.

The only change that needs to be made, is the NDI SDK has functions for dynamically loading the NDI DLL, so it can fail gracefully if the redistributable isn't already installed. This is if the licensing won't allow inclusion of the DLL directly.
 
Top