DistroAV - Network Audio/Video in OBS-Studio using NDI® technology

DistroAV - Network Audio/Video in OBS-Studio using NDI® technology 6.0.0

Dumedo

New Member
Make sure all the audio settings in both Windows and OBS are the same (48khz, don't have too many filters that stress the CPU, etc).

Make sure both NDI are using the same Timing (Network or Source) and make sure both of your PC have the same Time as well.

Make sure any kind of extra streaming or recording on your Game PC isn't hitting the cap loads (95% on GPU for example) if they are, then record with the Hardware stuff like Quicksync or NVENC but on the lowest settings.

Trying Low Latency on your NDI is another option instead of normal (it's under the NDI Source) and make sure Hardware Acceleration is enabled if your budget PC supports it.
- Both pc and OBS are on same audio settings
- Both PC have the same time NDI timing is only on ndi sources so no NDI timing on gaming PC
- Game PC GPU is never over 95% and also CPU
- I'm already on low latency and also hardware acceleration is enabled.

I tested again OBS 28.1.2 with obs-ndi-4.10.0 plugin and both ndi-runtime-4.5.1-Windows and NDI runtime 5.5.2.0 because with 27.2.4 today I can't see any sources but now with 28.1.2 I got massive "skipped frames due to encoding lag", tested on both my PC (on streaming PC I just enabled the plugin to output and i got same skipped frame bla bla bla... )

1672792002321.png


Without OBS-ndi plugin enabled I got no skipped frames due to encoding

1672792100354.png


As you can see CPU usage is high with NDplugin enabled
 

Acey05

Member
I'm not sure I understand, anything sending data to another machine which involves audio, images, and such will always have a CPU or GPU cost.

It's kinda like uploading a video on Youtube, even if people claim it doesn't have a performance cost on your browser, it does, your PC needs to do work to send data in a format to another, it can't be free. NDI is the same, it requires work to send that data in some format to the other PC.

NDI however shouldn't be at 10%, maybe 2% at 720 and 5% at 1080? So I'm not sure what's going on there, unless Recording is involved as well or rescaling of videos.

The only thing I know is you require a much stronger PC if you plan on getting fancy, I don't use Webcams, Masks, Filters or Shaders, but every scene you have with extra effects will add to that cost, since OBS doesn't disable those effects, and they eat performance in the background (even idle videos).
 

Dumedo

New Member
I'm not sure I understand, anything sending data to another machine which involves audio, images, and such will always have a CPU or GPU cost.

It's kinda like uploading a video on Youtube, even if people claim it doesn't have a performance cost on your browser, it does, your PC needs to do work to send data in a format to another, it can't be free. NDI is the same, it requires work to send that data in some format to the other PC.

NDI however shouldn't be at 10%, maybe 2% at 720 and 5% at 1080? So I'm not sure what's going on there, unless Recording is involved as well or rescaling of videos.

The only thing I know is you require a much stronger PC if you plan on getting fancy, I don't use Webcams, Masks, Filters or Shaders, but every scene you have with extra effects will add to that cost, since OBS doesn't disable those effects, and they eat performance in the background (even idle videos).
Tnx for the answer. I'm well aware that there is a "cost" in CPU and GPU but the problem is not CPU or GPU related I know how to monitor CPU and GPU and I always check but this is not the case.

My specs are: Game PC is an i7-8700 32gb rtx3070, streaming PC is an i5-4570 16gb GTX1060. Audio desync come sometime after half an hour sometime after 1 hour and sometime I got no desync, I stream everytime the same game rFactor 2, nothing else.

If I stream from my GamePC I don't have any desyc so I think the problem is related to NDI plugin and this problem is present from 2021, if you read on github https://github.com/Palakis/obs-ndi/issues/691 someone pointed me to the right direction:
  • split your audio and video for each to have its own ndi source (streaming pc + gaming pc)
  • use "low latency Experimental mode"
And it worked, but sometimes I still got desync, and I was on OBS 27 at the time; I knew that OBS 28 did't had a working obs-ndi plugin but
last week I tried the new obs-ndi plugin with 28.1.2, and I got "skipped frames due encoding lag" on Gaming PC with obs-ndi plugin active.

Yesterday night I did a complete cleaning of OBS and NDI runtime on both PC. And after many restarts now I don't have "skipped frames due encoding lag", I haven't tested for the desync because I need at least a 2 hour streaming but I got bad sound quality and audio distortion, I know that there is a fix somewere here on the forum and I'm going to test it today.
 

Acey05

Member
I don't know what to say honestly to help, because no one wants to fix the issues for OBS / NDI currently, and that's kinda the nasty truth. You can fix it for a day or two, but problems will come back.

So you're kinda on your own to find out what your system will "tolerate", or should I say what kind of "quality" you personally will tolerate on your streams.

I did mention several times in the past that newer versions of OBS 27 were having the desync issues.
Neither OBS or NDI peeps wanted to fix it, even though it's literally there, as in just look up what was changed in OBS in version 27.1 or something and the later ones to see where the problem started, no one did.

I did mention that the new NDI Tools work, and I think version 4.6 was the best, but NDI removed them.
So we're still stuck on 4.5.1 Github Runtimes, and now there is the issue that NDI 5 Runtimes is also lost (or the outdated version is only backed?), while I think NDI Tools 5.0 have stutters issues. No one has backups or fixes for these.

I did mention that the best you can fix NDI with is by having intermittent "audio drops", as in every couple of minutes to hours, your audio will "skip" a couple of frames trying to resync.
It's annoying if you focus on it, but not really noticeable, and that's the best you can hope for. Nobody bothered using this information to trace back the "audio buffering issue", that I think only NDI 4.9.2 partially fixed.

I did mention a bug about having too many NDI specific outputs causing the Streaming PC for example to get taxed by OBS and disconnecting the PC's connection, while also potentially desyncing the whole audio by several seconds fully, no one cared.

I did mention also that the new OBS-NDI has "audio capture issues", as in you need to start a 3D software first (game for example) and THEN OBS afterwards, otherwise it will desync the audio on the outputs.
Most apparent with OBS and NDI on a second screen before starting a game (even VLC desyncs it), it could be related to Shader Caching or something, but no one bothered checking up on this issue since it's "visual" and not a "real" problem, whatever that means.

And just recently, as in today, I found out OBS stutters videos every couple of minutes to an hour with the latest NDI Plugin. I has some videos be completely desynced as a local recording.
Everyone is saying to use NDI 4.10.1, but it seems like no one noticed it's causes video buffering/latency issues for stressed GPU's, meaning unless you have 2 GPU Encoding chips (which only exists on high end GPU's) for example, even recording a video will have the same stutters and audio drops as in the stream, sometimes worse, just adding extra work for people to fix in a video editor.

The best part? Old OBS with 4.9 doesn't have this Local Recording issue with GPU videos at least, and I think 4.9.2 for OBS 28 also fixes this issue. Yet it seems like no one notices any of these issues or can do anything about it, so we're stuck with what we have, or with plenty of contradicting information.

I think if OBS gets another update that breaks the current 4.9.2 NDI Plugins, or introduces anymore issues with the NDI Tools, NDI will be pretty much dead at that point since it's barely works at this point.

At that point you will need to use the Teleport Plugin. It would be perfect if the Teleport Plugin could use QuickSync for example to do it's work, but sadly it needs to use about 10% of a CPU's power, which has it's own set of issues.
 
Just a general question on the development process here. It's been months since I heard any comment on an official new release of 5.0. I had read somewhere that development was "stuck" at some point and that they had given up. Knowing this community, I doubt that. But it would be helpful to get an official update of some sort. In particular, I'm curious whether NDI Output and and Dedicated NDI Output will have an option to Output NDI HX if there is capable hardware? Also will there be the ability to bind NDI Output to a particular interface or network?
 

Juspan

New Member
Just a general question on the development process here. It's been months since I heard any comment on an official new release of 5.0. I had read somewhere that development was "stuck" at some point and that they had given up. Knowing this community, I doubt that. But it would be helpful to get an official update of some sort. In particular, I'm curious whether NDI Output and and Dedicated NDI Output will have an option to Output NDI HX if there is capable hardware? Also will there be the ability to bind NDI Output to a particular interface or network?
This is what I wonder too. The developer has not commented anything.. It's starting to feel like this plugin is dead.
 

Jackdaw91

New Member
Just a general question on the development process here. It's been months since I heard any comment on an official new release of 5.0. I had read somewhere that development was "stuck" at some point and that they had given up. Knowing this community, I doubt that. But it would be helpful to get an official update of some sort. In particular, I'm curious whether NDI Output and and Dedicated NDI Output will have an option to Output NDI HX if there is capable hardware? Also will there be the ability to bind NDI Output to a particular interface or network?
 

Jackdaw91

New Member
I apologise for not having a clue about the protocol here and not really knowing what or where to post but hopefully I can help regarding the Newtek NDI integration issue. I too was having bother getting the NDI 5 Source to show up in OBS Studio 28.1.2 macos arm64.dmg. It's probably common knowledge by now but I found some tips on YouTube and they thankfully worked for me and I have it working now so I thought i'd pass them on in case someone finds them as lifesaving as I did. A huge thank you goes out to the guy who posted the instructions as they were invaluable to me.https://youtu.be/2AeaIPh0J9g
 

Oslo_O

New Member
I don't know if it could Help but here is my configuration thats seems to work on Windows without Robotic Voice:

Game PC:
  • NDI Tools 5.5.2.0

On Stream PC:
Everything is connected with CAT7 ethernet cables with a NETGEAR Switch ProSafe GS105E

I let you my NDI source conf in attachement (sorry it's in french)
Capture.PNG


It seems that sometimes i have some delay between Images abd sounds buti still don't know why.

IMPORTANT: when i tried the latest OBS-NDI plugin version, i had a robotic sound! Not with 4.9.2 version
 

pLy

New Member
I am also wondering, how I can route internal NDI Streams like from Resolume Arena back to OBS. I have no hope anymore that this project here will be supported in the near future for ARM Macs. Anyone has an Idea how to accomplish this? I'm willing to spend the money for a hardware solution.
 

ThommiTechnik

New Member
I am also wondering, how I can route internal NDI Streams like from Resolume Arena back to OBS. I have no hope anymore that this project here will be supported in the near future for ARM Macs. Anyone has an Idea how to accomplish this? I'm willing to spend the money for a hardware solution.
Maybe I don't understand you right, but we already told, how to install and use NDI on AR Macs (as we are also using ARM Macs' in our organization). So, it's possible to go from Resolume to OBS. Or did I misunderstand your question?

Are you really working with Resolume and OBS on one computer at the same time? Strange...
 

thedeadpullshow

New Member
Maybe I don't understand you right, but we already told, how to install and use NDI on AR Macs (as we are also using ARM Macs' in our organization). So, it's possible to go from Resolume to OBS. Or did I misunderstand your question?

Are you really working with Resolume and OBS on one computer at the same time? Strange...
I am working with Resolume and OBS and vMix on the same computer (on a PC). Yes, I know I shouldn't, but I used a combination of NDI and Spout2 to share video sources between those apps. Maybe they can try Spout2 in OBS if NDI isn't working for them?
 

Jaybonaut

Member
There are some reports on github about it not working on OBS 29 which just hit. I will wait to update until we get confirmation.
 

Talonis

Member
I recently re-installed OBS NDI on v. 29 as a test and it's working for me (Mac Silicon).

I plan to drop it at some point (and just use SRT) as it does feel like it will fail one day but for the moment it's a convenience for a singularly specific thing.
 

pLy

New Member
Maybe I don't understand you right, but we already told, how to install and use NDI on AR Macs (as we are also using ARM Macs' in our organization). So, it's possible to go from Resolume to OBS. Or did I misunderstand your question?

Are you really working with Resolume and OBS on one computer at the same time? Strange...
I would love to run it in native mode, not in Rosetta. And I got some performance spikes with using NDI Virtual Input if I try the NDI Tools workaround. And yes, I got a specific us case where I need on one device those 2 programs at the same time, also I have Resolume running on another device.
 
Last edited:

ThommiTechnik

New Member
I recently re-installed OBS NDI on v. 29 as a test and it's working for me (Mac Silicon).

I plan to drop it at some point (and just use SRT) as it does feel like it will fail one day but for the moment it's a convenience for a singularly specific thing.
Let me say it like this: I'm working as Broadcast Engineer and TD for a Public Broadcast Organisation... and we're using SRT, or better RIST, because this is the next step for Professional Broadcasting. NDI was just an intermediate... So we´re compiling our OBS-instances with RIST-support
 

ThommiTechnik

New Member
I am working with Resolume and OBS and vMix on the same computer (on a PC). Yes, I know I shouldn't, but I used a combination of NDI and Spout2 to share video sources between those apps. Maybe they can try Spout2 in OBS if NDI isn't working for them?
Here's the link, how to enable native NDI on ARM: https://obsproject.com/forum/threads/solution-for-ndi-on-m1-macs´.162238/

Do yourself a favor, and don't use all these programs on ONE PC. NDI is such a stress for the CPU...
 
Top