DistroAV / DistroAV

DistroAV (formerly OBS-NDI): NewTek NDI integration for OBS Studio
GNU General Public License v2.0
3.05k stars 351 forks source link

[Bug]: Zero OBS-NDI output/sources (on 3 separate machines) #1033

Open ModelCitizenPS3 opened 3 weeks ago

ModelCitizenPS3 commented 3 weeks ago

Operating System Version

Fedora 40

CPU

x86_64 AMD Ryzen

GPU

Nvidia 1650 (Desktop) and AMD Radeon (Laptops)

NDI Devices

Homebuilt desktop computer, two HP Envy Laptops, and my iPhone

OBS Version

30.1.1 (64-bit)

OBS Installation Method

RPM package from Fedora repos

OBS-NDI Version

4.13.0

OBS-NDI Installation Method

RPM package from the Fedora Repos

[Extra] Installation Steps

List of NDI-related packages installed on my computers: obs-ndi, ndi-sdk, ndi-sdk-devel, libndi, libndi-devel, libndi-sdk, libndi-utils

OBS Log [URL]

https://obsproject.com/logs/DeDlvbBra6ATcyjC

NDI Version

10:26:04

Describe the bug

I use OBS-NDI on 4 different devices (my iPhone, my desktop computer, and my 2 laptops). Currently only my iPhone has a working OBS-NDI output/source stream. Output is broken on all three of my computers though they can all receive audio/video from my OBS-NDI iPhone app. OBS-NDI output is enabled on all the computers but none of them can find the other ones as a source/input. Please note that I do not use a firewall on any of the machines I've described (firewalld.service is disabled. I also have SELinux disabled on each of these machines. Also all of my computers have permanent IP addresses reserved in my router, which is a Netgear Nighthawk (not that any of that should matter). For the life of me I cannot figure out how to resolve this glitch - any help is greatly appreciated...

One odd behavior I can describe is the fact that I cannot rename any of my OBS-NDI source streams on any of the computers, even when I have the plugin disabled. (Traditionally, disabling the OBS-NDI output would make the source name able to be changed. But this is no longer the case. As a result all three of my computers are using the same OBS-NDI source name, as I have not been able to rename them even with their outputs is disabled).

Steps to reproduce the problem

  1. Install OBS-Studio from the Fedora repositories.
  2. Install OBS-NDI packages (listed above) from the Fedora repositories.
  3. Start OBS-Studio and open OBS-NDI dialog.
  4. Disable OBS-NDI output (if enabled) and enter a name for the OBS-NDI stream.
  5. Enable OBS-NDI output stream.
  6. (On omputer 2) Start OBS-Studio and creane a "scene" for our OBS-NDI source.
  7. Open new source dialog and select NDI source.
  8. Search drop-down menu for the name of the source previously configured (on computer 1).
  9. Source stream is not in the list.

Expected behavior

After configuring and enabling OBS-NDI plugin output on computer 1, it should show up as a selectable source in OBS-Studio on computer 2.

Screenshots

obs-ndi-screenshot-1 obs-ndi-screenshot-2

Additional context

In screenshot 1 you can see that mcps3mobile (my iPhone) is the only OBS-NDI source available in the drop-down list. In screenshot 2 I'm showing that even with the OBS-NDI output disabled, I still cannot change the name of the OBS-NDI source (text is greyed-out and unselectable). Screenshots are from one of my laptops (HP Envy running Fedora 40 - Linux)

Thank you for your consideration :-)

paulpv commented 3 weeks ago

Do you have a Windows PC available that you can test using NDI Tools' NDI Studio Monitor with?

ModelCitizenPS3 commented 3 weeks ago

I do have access to a Windows laptop. Will install NDI Tools today and continue troubleshooting; see what I can discover. Will post again later and share my results. Thanks for the help!

ModelCitizenPS3 commented 3 weeks ago

Status Update...

So I downloaded NDI Tools (as well as OBS Studio and OBS-NDI) for Windows on my parents' Win 11 laptop. Was able to install OBS and OBS-NDI just fine but NDI Tools gave a runtime error and would not install. According to the NDI Tools site, there are processes which needed to be shut down before installing (it mentioned MS Teams and McAfee specifically). Unfortunately Windows does as it pleases (not what it's told) and for the love of all that is holy I could not get it's PERMISSION to kill any of it's pre-installed crap-ware (McAfee). Makes you wonder, who's the real admin of this machine? Not me I guess, lol.

I was however able to get OBS and OBS-NDI working for testing purposes and confirmed that OBS-NDI was able to create discoverable sources and transmit audio/video to my other computers. This strongly indicates that I don't have a network/router issue, but rather a Fedora 40 issue... so that's something.

After fighting with Windows a while, I gave up on NDI Tools and tried something else. I formatted one of my laptops, did fresh install of Fedora 40 Server and installed nothing else other than OBS, OBS-NDI, and my GUI desktop (xfce). This time I installed the flatpak versions of OBS and NDI rather than the traditional RPM packages from the Fedora/RPMFusion repos. Unfortunately this resultetd in the same behavior (NDI sources were un-discoverable, and I was unable to rename the streams even when disabled).

So just for fun I then started scanning ports/services on my iPhone's IP, since NDI output is working on that device. As expected I saw services on 5960 and 5961 (the NDI ports, if I'm correct). Similar nmap scan of my Fedora machines (with NDI enabled) shows no services on those (or any other) NDI-related ports... Netstat also returns same results - no activity on my NDI ports (bear in mind ALL firewall daemons are disabled here, and SELinux is disabled on all machines). So now I guess the name of the game is figuring out why OBS-NDI is not binding to its ports and that's about as far as I've gotten so far. Also, I did test out OBS's WebSocket server (which binds to 4455) and that works fine.

If anybody has any suggestions on what I should try next, I'd be very happy to hear them. This is starting to look more and more like a Fedora issue than anything else (and it certainly wouldn't be the first time Fedora broke OBS's NDI compatability). Anyway thanks again for your time & consideration :-)