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

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

FirstZero

New Member
Does anybody else has an proplem with getting audio when using the Dedicated Output ? I swear i had it working 2 weaks ago. Has anybody an idea?
 

MichielV

New Member
unfortunately, there is no "/usr/local/lib". I only find "/usr/local/bin" which just contains "Application.Mac.NDI.Recording". Do I miss something?
 

MichielV

New Member
Dear all,

as a lot of us, I also struggled with NDI on my M1 Mac. Today I got it working, and I wanted to share my solution with you:

- Go into /Programs, and choose "Show Contents" from NDI Video Monitor. Go into "Contents > Frameworks" and copy the "libndi_advanced.dynlib"
- Chang into "usr/local/lib", and paste this file
- rename the "libndi4.dynlib" (like e.g. "old_libndi4.dynlib")
- rename "libndi_advanced.dynlib" to "libndi4.dynlib"
- start OBS, and you'll see the NDI Sources again

Cheers, Thomas
Unfortunately there is no "/usr/local/lib" on my system. I Only found "/usr/local/bin" and it contains "Application.Mac.NDI.Recording" in stead of "libndi.dylib". Do I miss something?
 

wadus

New Member
Going to leave my reply just in case this helps someone else.

What I wanted to achieve was using my iPhone as a video input in OBS. So here it goes:

- I'm using a Mac, OBS 29.0.2, OBS-NDI plugin 4.11.0, NDI 5.5.3 runtime
- Installed all the things and did the dylib replacement mentioned a couple of pages earlier, but honestly at this point i don't know if it's actually necessary.
- Installed NDI Tools for Mac, which are weird AF
- On the iPhone, run the NDI app. I'm using the unofficial NDICam app by Mark Gilbert, not the official one, and stilll works
- Open NDI Launcher, launch NDI Virtual Input, in the menu at the top, select NDI and then your iPhone stream.
- Open OBS, add Video Capture Device, select NDI Video as the Device. Previously NDI Source appeared as a main option, which made this really hard to find because I wasn't expecting it there
- Voila

This was frustrating as hell, nearly gave up a few times. Hard to understand how in this day an age things are still so complicated / poorly documented.

Registered an account just to leave this message, really hope it saves someone a couple of hours of frustration and feeling dumb.

J
 
Last edited:

Sacraaz

New Member
Hello o/ I will try to explain as best as I can. Using 2 pc setup for streaming/recording video games.If using only one NDI source when streaming audio is out of sync. If using multiple NDI sources (dedicated NDI output audio only filter) can stream without problems for a few hours after that audio gets desynced. If closing OBS on a gaming pc and starting it again audio fixes itself. Then after a few hours audio desyncs again. On streaming pc using Source timing. All drivers programs etc are up to date. Using NVDIA Broadcast on streaming pc (if that matters) and microphone on gaming pc. Searched all internet for help but can't fix it. On old OBS version 27 or something never had this problem.
 

Jaybonaut

Member
Is this still undergoing a rework for 5 that was talked about last year? Just checking and I am very appreciative for this feature.
 

WoBra

New Member
Hello all,
Have everything set up on my streaming PC. Use NDI Tools with Screen Capture HX on the gaming PC.
so over the graphics card. Everything works so far on the streaming PC, picture comes ingame sound comes but unfortunately no micro. Sound is set to default. If I select only the microphone, the microphone works, but no ingame sound. Does anyone have any help?
 

WoBra

New Member
I just found out that you can only transfer one sound source and not two, for whatever reason, I find quite illogical but ok. Does anyone else happen to have a tip? Micro to the streaming PC is bad because the PC is further away and on the gaming PC is no more space for the 2nd computer.
 
I just found out that you can only transfer one sound source and not two, for whatever reason, I find quite illogical but ok. Does anyone else happen to have a tip? Micro to the streaming PC is bad because the PC is further away and on the gaming PC is no more space for the 2nd computer.

There are other options for moving sound from one computer to another.

NDI is but one. On the sending computer, you can add it as an audio filter to whatever source you like then assign it a unique name from whatever you have other sends from that PC are. On the receiving computer, make sure you tell it to receive it as "audio only" instead of "normal" or "low latency", which implies video transport.

Another option you can use is VBAN, which does NOT require Voicemeeter or even the VBAN Receptor, but it does help.

My rule of thumb, given that I actually do use Voicemeeter is that if I plan to keep the sound confined within OBS Studio, it makes far more sense to use NDI than it does to use VBAN. If I'm going to be using a source not just in OBS Studio, but other programs, such as Discord (if I'm using Discord in a collab, my mike and my Discord process I'm using for that event are on different computers because I assemble the stream on a different computer from the one I'm gaming on, plus reactive images require that Discord and OBS Studio run on the same computer due to socket-based IPC is going on), it makes far more sense to use VBAN, though I do that entirely outside of OBS Studio since more than OBS Studio needs my mike in this context.

Anyway, those are some baseline ideas you can take and run with. Use what works the best when it comes to moving audio and/or video across your network. I hope this was of value.

--Katt. =^.^=
 

WoBra

New Member
There are other options for moving sound from one computer to another.

NDI is but one. On the sending computer, you can add it as an audio filter to whatever source you like then assign it a unique name from whatever you have other sends from that PC are. On the receiving computer, make sure you tell it to receive it as "audio only" instead of "normal" or "low latency", which implies video transport.

Another option you can use is VBAN, which does NOT require Voicemeeter or even the VBAN Receptor, but it does help.

do use Voicemeeter is that if I plan to keep the sound confined within OBS Studio, it makes far more sense to use NDI than it does to use VBAN. If I'm going to be using a source not just in OBS Studio, but other programs, such as Discord (if I'm using Discord in a collab, my mike and my Discord process I'm using for that event are on different computers because I assemble the stream on a different computer from the one I'm gaming on, plus reactive images require that Discord and OBS Studio run on the same computer due to socket-based IPC is going on), it makes far more sense to use VBAN, though I do that entirely outside of OBS Studio since more than OBS Studio needs my mike in this context.

Anyway, those are some baseline ideas you can take and run with. Use what works the best when it comes to moving audio and/or video across your network. I hope this was of value.

--Katt. =^.^=
Hello Katt, thanks for your reply.

I only use NDI on the gaming PC, not OBS, which then sends the sound and image from the graphics card to the streaming PC. There I will not get far with filters and otherwise I know only Voicemeeter. I did not know that there is also the VBAN alone. Have that tested directly times and it runs better than Voicemeeter, so is easier in the settings.

The NDI is more useful, is clear. But if I can not send 2 audio data there, what should I do then^^
 
Hello Katt, thanks for your reply.

I only use NDI on the gaming PC, not OBS, which then sends the sound and image from the graphics card to the streaming PC

How do you use NDI in this context? I prefer using OBS Studio to capture the game, then send its output to a "studio PC". Gives me some familiar control over capture both locally and remotely (also OBS Studio).

There I will not get far with filters and otherwise I know only Voicemeeter. I did not know that there is also the VBAN alone. Have that tested directly times and it runs better than Voicemeeter, so is easier in the settings.

I've fully figured out Voicemeeter's own VBAN, which allows me to use applications entirely outside OBS Studio. But like I said, it all depends on the application and how I want to implement things. But with the VBAN plugin for OBS Studio, it can be a source, a destination, or even both, but for the "both" scenario, I tend to prefer NDI for that. That's because VBAN tends to be only one-to-one while NDI can be either one-to-one or one-to-many. Even better if NDI can be made to run multicast.

The NDI is more useful, is clear. But if I can not send 2 audio data there, what should I do then^^

What's the second audio source you're trying to send? Knowing that would help a lot.

Also, like I said, I involve OBS Studio because it brings a very familiar interface to the table, allowing me to do some pretty cool stuff.

--Katt. =^.^=
 

WoBra

New Member
How do you use NDI in this context? I prefer using OBS Studio to capture the game, then send its output to a "studio PC". Gives me some familiar control over capture both locally and remotely (also OBS Studio).



I've fully figured out Voicemeeter's own VBAN, which allows me to use applications entirely outside OBS Studio. But like I said, it all depends on the application and how I want to implement things. But with the VBAN plugin for OBS Studio, it can be a source, a destination, or even both, but for the "both" scenario, I tend to prefer NDI for that. That's because VBAN tends to be only one-to-one while NDI can be either one-to-one or one-to-many. Even better if NDI can be made to run multicast.



What's the second audio source you're trying to send? Knowing that would help a lot.

Also, like I said, I involve OBS Studio because it brings a very familiar interface to the table, allowing me to do some pretty cool stuff.

--Katt. =^.^=
to one:
I just use the program NDI choose there Streaming Capture HX and set everything in the taskbar (at the icon next to the network icon).It sends everything I do on the first monitor to the second PC where I can use it with OBS )with NDI plugin), which I control with Touch Portal.

secondly:
When I tried yesterday with VBAN my microphone came totally distorted no matter what setting I used, is for me then also not usable. Have the program also not yet understood so...

Thirdly:

I want to transfer ingame sound and micro sound. If I set the audio to default output takes only the ingame sound. So without micro because that goes then wiederrum either only if I choose the default input or the micro. If there is another possibility I have not yet found. I can not tell the program that he should send both.
 
to one:
I just use the program NDI choose there Streaming Capture HX and set everything in the taskbar (at the icon next to the network icon).It sends everything I do on the first monitor to the second PC where I can use it with OBS )with NDI plugin), which I control with Touch Portal.

When you mention HX, then it makes more sense. You really can't tell the NDI plugin to use HX -- at least not yet anyway.

However, I still use OBS Studio in two cases anyway, simply because it makes more sense to me.

In my case, as a VTuber, I absolutely have to use the NDI plugin within OBS Studio because I need the ability to move an alpha channel over to my "studio PC" so I can overlay my character over the scene. This allows me to forego the usage of chroma-keying entirely since my main applications on the "VTuber PC", VTube Studio and T.I.T.S., to run either on Spout2 (VTube Studio) or with the ability to capture transparency (both apps) into the scene. I then use the BGRA format so I can then output an alpha-capable scene out the back of OBS Studio to my studio PC. However, this appears to have limited applicability in your case, but I figured I would put this here for others' benefit.

On the gaming side, I still capture with OBS Studio because it gives me an extreme measure of control over how things will work before the scene even exits out the back of that machine's OBS Studio. I can vary the audio capture volume, plus I can capture only the game and not any unnecessary overlays, for example, Steam toasts, including and especially when friends start games or any of their messages to me. This is done via OBS Studio's built-in "game capture" plugin.

Furthermore, as of OBS Studio 28, it has a bundled plugin, along with a third-party plugin that works with OBS Studio 27, allow me to capture only the game's sound via a Windows 11 API that is present in recent releases of Windows 10, and not all other sounds the computer is emitting by using the audio device endpoint as the point of capture, which I find to be very-much-less-than-ideal.

However, all that said, I'd actually given thought to using the NDI capture program to capture any games, but I wanted the precision over what gets captured. NDI's apps doesn't want to capture specific windows and does not have the ability to capture apps like the "Game capture" OBS-bundled plugin does. This thus explains my rationale of using OBS Studio even when I'm not streaming to Twitch, but instead, to the next PC in the pipeline.

secondly:
When I tried yesterday with VBAN my microphone came totally distorted no matter what setting I used, is for me then also not usable. Have the program also not yet understood so...

Were you using the VBAN plugin for OBS Studio, the VBAN capabilities in Voicemeeter on either or both endpoints, or some combination of them? I use Voicemeeter because the capability is built-in and because I have to in order to move audio from my gaming PC (speaker and microphone) to the studio PC (Discord would run on this machine, which it needs to anyway as the Fugi Reactive Images system needs both the browser displaying my collaborators' PNGs, in this case, OBS Studio, to run on the same machine owing to socket-base IPC). When I'm not streaming, I'd do any voice chatting on my gaming PC.

As for not understanding a piece of software, you may have to mess with it a bit more so you can understand it. Just mess with it when you have some downtime so you can master it. Knowing how Voicemeeter works now allows me to make use of it not only in OBS Studio, but everyday computing usage. Besides, I've been using it long before ever getting into streaming as I do a lot of messing with audio. Practice practice practice is the key here.

Thirdly:

I want to transfer ingame sound and micro sound. If I set the audio to default output takes only the ingame sound. So without micro because that goes then wiederrum either only if I choose the default input or the micro. If there is another possibility I have not yet found. I can not tell the program that he should send both.

I'm assuming "micro sound" means "microphone sound". We Anglophones generally say "mic" or I say "mike" to mean microphone. I can only assume that English isn't your "mother tongue". I'm just wondering how you're working on having your microphone going into VBAN on one side and outputting to the other.

As for audio in general, it's too much work to do just to get just the in-game sound going out a particular audio pipeline endpoint or a specific audio pipe to capture. Most games won't allow you, even via apps like Ear Trumpet (which is a great app any streamer shouldn't be without, by the by), won't allow you to reroute a given game's audio to a different device. Though just as important, it's a bear to make sure that certain sounds do not make it to that pipe, though I still recommend the abovementioned Ear Trumpet for that if you can. It just makes far more sense to me to use OBS Studio to capture the game's video and the sound both directly from the app, rather than from OS-provided subsystems. Basically, the closer you can get to the app you're capturing, i.e. the less you can avoid touching audio pipeline endpoints, like device channels, the better. In my case the words "not at all" are the words of the day I prefer using. I only capture audio from devices solely as a last resort or when it makes more sense or is necessary to, e.g. a mike in the lattermost case.

Anyway, I hope that gives you some ideas as to why I do things the way I do things.

--Katt. =^.^=
 
Last edited:

WoBra

New Member
When you mention HX, then it makes more sense. You really can't tell the NDI plugin to use HX -- at least not yet anyway.

However, I still use OBS Studio in two cases anyway, simply because it makes more sense to me.

In my case, as a VTuber, I absolutely have to use the NDI plugin within OBS Studio because I need the ability to move an alpha channel over to my "studio PC" so I can overlay my character over the scene. This allows me to forego the usage of chroma-keying entirely since my main applications on the "VTuber PC", VTube Studio and T.I.T.S., to run either on Spout2 (VTube Studio) or with the ability to capture transparency (both apps) into the scene. I then use the BGRA format so I can then output an alpha-capable scene out the back of OBS Studio to my studio PC. However, this appears to have limited applicability in your case, but I figured I would put this here for others' benefit.

On the gaming side, I still capture with OBS Studio because it gives me an extreme measure of control over how things will work before the scene even exits out the back of that machine's OBS Studio. I can vary the audio capture volume, plus I can capture only the game and not any unnecessary overlays, for example, Steam toasts, including and especially when friends start games or any of their messages to me. This is done via OBS Studio's built-in "game capture" plugin.

Furthermore, as of OBS Studio 28, it has a bundled plugin, along with a third-party plugin that works with OBS Studio 27, allow me to capture only the game's sound via a Windows 11 API that is present in recent releases of Windows 10, and not all other sounds the computer is emitting by using the audio device endpoint as the point of capture, which I find to be very-much-less-than-ideal.

However, all that said, I'd actually given thought to using the NDI capture program to capture any games, but I wanted the precision over what gets captured. NDI's apps doesn't want to capture specific windows and does not have the ability to capture apps like the "Game capture" OBS-bundled plugin does. This thus explains my rationale of using OBS Studio even when I'm not streaming to Twitch, but instead, to the next PC in the pipeline.
Yes so I have now your intended use not quite understood (probably because of my English knowledge^^) I only record games or stream them. Recordings I still make over the gaming PC, as well as streaming. Also just wanted to test to what extent that is worth it at all (Windows 11 and 12600KF CPU) I also notice that you know it extremely well, at least much more than I^^ The NDI sends the whole monitor over but also bothers me a lot. Otherwise, I will save on a capture card.

Were you using the VBAN plugin for OBS Studio, the VBAN capabilities in Voicemeeter on either or both endpoints, or some combination of them? I use Voicemeeter because the capability is built-in and because I have to in order to move audio from my gaming PC (speaker and microphone) to the studio PC (Discord would run on this machine, which it needs to anyway as the Fugi Reactive Images system needs both the browser displaying my collaborators' PNGs, in this case, OBS Studio, to run on the same machine owing to socket-base IPC). When I'm not streaming, I'd do any voice chatting on my gaming PC.

As for not understanding a piece of software, you may have to mess with it a bit more so you can understand it. Just mess with it when you have some downtime so you can master it. Knowing how Voicemeeter works now allows me to make use of it not only in OBS Studio, but everyday computing usage. Besides, I've been using it long before ever getting into streaming as I do a lot of messing with audio. Practice practice practice is the key here.

I had some time (about 3-4 years) already Voicemeeter, but had it then uninstalled for some reason. Must there again rumtesten. At the moment I'm testing SteelSeries Sonar, but I can't send audio with it. With Voicemeeter I'm always confused by the inputs and outputs, what goes where and how. But I'll have a look.

I'm assuming "micro sound" means "microphone sound". We Anglophones generally say "mic" or I say "mike" to mean microphone. I can only assume that English isn't your "mother tongue". I'm just wondering how you're working on having your microphone going into VBAN on one side and outputting to the other.

As for audio in general, it's too much work to do just to get just the in-game sound going out a particular audio pipeline endpoint or a specific audio pipe to capture. Most games won't allow you, even via apps like Ear Trumpet (which is a great app any streamer shouldn't be without, by the by), won't allow you to reroute a given game's audio to a different device. Though just as important, it's a bear to make sure that certain sounds do not make it to that pipe, though I still recommend the abovementioned Ear Trumpet for that if you can. It just makes far more sense to me to use OBS Studio to capture the game's video and the sound both directly from the app, rather than from OS-provided subsystems. Basically, the closer you can get to the app you're capturing, i.e. the less you can avoid touching audio pipeline endpoints, like device channels, the better. In my case the words "not at all" are the words of the day I prefer using. I only capture audio from devices solely as a last resort or when it makes more sense or is necessary to, e.g. a mike in the lattermost case.

Anyway, I hope that gives you some ideas as to why I do things the way I do things.

Yes I also say only Mic or mike and no English is not my native language, come from Germany....
EarTrumpet I have even heard of the often, I'll have a look. To learn a little bit is always good. Can also be good that I run the if then again via OBS, there you have at least control what is sent over if obs runs on both PCs.

I thank you for your detailed help and also suggestions. Will then first go test :)
 
Top