Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Blank screen on broadcast from Popos 22.04 to Macos, Playback freezes on the Popos #957

Open
parz3val opened this issue Jan 9, 2024 · 6 comments

Comments

@parz3val
Copy link

parz3val commented Jan 9, 2024

Operating System Version

Popos 22.04

OBS Version

30.0.2

NDI Tools Version

SDK Version 5.6

Describe the bug

So, I've been trying to make the obs-ndi work on the pop os 22.04. Installed runtime, installed the obs-ndi and broadcasted the screen by making creating an output. But when I try to play the source from the NDI monitor or obs ndi on my mac, all I see is blank screen. When I try to play the braodcast from the NDI-HX camera or the macos in the obs-ndi by adding new source, it plays couple frames and just gets stuck.
I have tried everything, but couldn't make it work for the life of me. :(

Steps to reproduce

Install obs studio
Install ndi v5 runtime
Install obs-ndi
Create new source.
Try to play the source on other device with ndi monitor or another device with the obs-ndi installed.

Expected behavior

No response

Screenshots

No response

Additional context

No response

@parz3val
Copy link
Author

parz3val commented Jan 9, 2024

Couple of things I've tried, I tried building the obs-ndi from the source and replaced the obs-plugin with the .so generated from the build with the command sudo cp obs-ndi.so /usr/local/lib/obs-plugins and tried to use the latest build. Had the same issue. It works perfectly on the mac, where mac can play and run the output of the windows pc.
I've also tried it with the obs version 29, 30.0.1 and 30.0.2 and same results.
When trying to play the broadcast from the other PC or phone, it can only play one frame and gets stuck. When trying to broadcast it only sends the blank screen.
ffmpeg version ffmpeg version 4.4.2
OBS Studio - 30.0.2

When I run obs from the console I can see no errors

info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' bandwidth changed; Setting recv_desc.bandwidth='100'
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' latency changed; Setting recv_desc.color_format='1'
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' Resetting NDI receiver...
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' +ndi_receiver = ndiLib->recv_create_v3(&recv_desc)
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' -ndi_receiver = ndiLib->recv_create_v3(&recv_desc)
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName'' tally changed; Sending tally on_preview=1, on_program=1
info: [obs-ndi] +ndi_source_create('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] +ndi_source_update('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] -ndi_source_update('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] -ndi_source_create('NDIPlugin.NDISourceName 2'...)
info: User added source 'NDIPlugin.NDISourceName 2' (ndi_source) to scene 'ScreenCapture'
info: [obs-ndi] ndi_source_shown('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] ndi_source_activated('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] +ndi_source_update('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] ndi_source_thread_start: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' Started A/V ndi_source_thread for NDI source 'SORTS-A20 (NDI HX Camera)'
info: [obs-ndi] -ndi_source_update('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] +ndi_source_thread('NDIPlugin.NDISourceName 2'...)
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' ndi_receiver_name changed; Setting recv_desc.p_ndi_recv_name='OBS-NDI 'NDIPlugin.NDISourceName 2''
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' ndi_source_name changed; Setting recv_desc.source_to_connect_to.p_ndi_name='SORTS-A20 (NDI HX Camera)'
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' bandwidth changed; Setting recv_desc.bandwidth='100'
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' latency changed; Setting recv_desc.color_format='1'
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' Resetting NDI receiver...
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' +ndi_receiver = ndiLib->recv_create_v3(&recv_desc)
info: [obs-ndi] ndi_source_thread: 'OBS-NDI 'NDIPlugin.NDISourceName 2'' -ndi_receiver = ndiLib->recv_create_v3(&recv_desc)

I was able to capture this error message but not sure if its related to ndi plugin

info: [obs-ndi] 'linuxndi': ndi output started
info: [obs-ndi] -ndi_output_start('linuxndi'...)
info: [obs-ndi] main_output_start: obs_output_start result=1
info: [obs-ndi] main_output_start: started NDI main output
warning: QXcbConnection: XCB error: 8 (BadMatch), sequence: 45498, resource id: 48234503, major code: 42 (SetInputFocus), minor code: 0
warning: QXcbConnection: XCB error: 8 (BadMatch), sequence: 45502, resource id: 48234503, major code: 42 (SetInputFocus), minor code: 0
warning: QXcbConnection: XCB error: 8 (BadMatch), sequence: 45506, resource id: 48234503, major code: 42 (SetInputFocus), minor code: 0

@paulpv
Copy link
Member

paulpv commented Jan 10, 2024

What version of ffmpeg is installed?
ffmpeg --version

@paulpv
Copy link
Member

paulpv commented Jan 10, 2024

Also try:

sudo apt install avahi-daemon ffmpeg
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
sudo ufw allow 5353/udp
sudo ufw allow 5959:5969/tcp
sudo ufw allow 5959:5969/udp
sudo ufw allow 6960:6970/tcp
sudo ufw allow 6960:6970/udp
sudo ufw allow 7960:7970/tcp
sudo ufw allow 7960:7970/udp
sudo ufw allow 5960/tcp

@parz3val
Copy link
Author

@paulpv Thank you. I am running ffmpeg version 4.4.4
I have installed and run both avahi-daemon and ffmpeg.
And this is my firewall setup

--                         ------      ----
22/tcp                     ALLOW       Anywhere
5960:5969/tcp              ALLOW       Anywhere
5960:5969/udp              ALLOW       Anywhere
5353/udp                   ALLOW       Anywhere
49152:65535/udp            ALLOW       Anywhere
49152:65535/tcp            ALLOW       Anywhere
5353/tcp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
5960:5969/tcp (v6)         ALLOW       Anywhere (v6)
5960:5969/udp (v6)         ALLOW       Anywhere (v6)
5353/udp (v6)              ALLOW       Anywhere (v6)
49152:65535/udp (v6)       ALLOW       Anywhere (v6)
49152:65535/tcp (v6)       ALLOW       Anywhere (v6)
5353/tcp (v6)              ALLOW       Anywhere (v6)

This is the main issue I am having, when I play the video from the other device, only 1 frame is played and it just gets stuck. So I think maybe the issue is with the encoders and decoders. What version of ffmpeg am I supposed to have?
I am considering switching to windows because of this, and I would not rather switch if I can solve the issue. I have the same issue when I try to playback the output from the source of the same device, meaning the ndi output that I create from the obs on the source machine. It gets stuck even on the source machine when I try to play it.

@paulpv
Copy link
Member

paulpv commented Jan 11, 2024

How did you install OBS and obs-ndi?

@parz3val
Copy link
Author

I installed obs via the apt repo. And obs ndi first with the .deb package. But, I 've also built the obs and obs-ndi package myself to test if it worked on the latest version.
First method:

 9619  sudo apt update
 9620  clear
 9621  sudo apt install obs-studio
 9622  obs --version
 
 9627  sudo gdebi obs-ndi-4.13.0-x86_64-linux-gnu.deb

Another method:

Built the obs with the instruction on the github page.
And installed the obs-ndi with the command.
9699  git clone https://github.com/obs-ndi/obs-ndi.git\ncd obs-ndi\n.github/scripts/build-linux\n...\n.github/scripts/package-linux\n...\nsudo cp -r release/obs-plugins/64bit/* /usr/local/lib/x86_64-linux-gnu/obs-plugins/\n...\nsudo cp -r release/data/obs-plugins/* /usr/local/share/obs/obs-plugins/\n...\nsudo ldconfig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants