Resource icon

obs-ndi - NewTek NDI™ integration into OBS Studio 4.13.0

SP_OBS

New Member
After updating to the latest update, it has resulted in constant desync and latency increases between audio+video sources, up to half a second at times. Usually happens after swapping between CPU intense scenes. Had no issues with the old version, downgraded now and it's fine. Checked logs and saw nothing noteworthy related to NDI.
 

roxx16200

New Member
Windows Users BEWARE: I have downloaded the Obs-ndi-4.9.0-Windows-Installer.exe on 2 different computers today. BOTH times, my antivirus reported a virus (Heur.AdvML.B) was discovered within the .exe file.
I understand that this COULD be a false-positive by Norton - and is also a common 'virus' reported by Norton when it detects an AI-driven application within another application....but I don't like to take risks with computer viruses.

However, the good news is, I followed the process of downloading and installing the .zip file instead - and it was clean.
 

SopherFellow

New Member
Ok, total newbie here, so keep the laughter to a minimum.
I have a crappy laptop in the living room. I have a ukulele group that is on Zoom. I have got OBS and virtual cam running and the NDI plugin.
The laptop is choking on running OBS and sending the virtualcam to Zoom (it runs, but it is marginal - video is okay, but machine marginally responsive, hard to click on scenes etc), so I thought I'd try to use NDI to help out.
The laptop is on wireless right now but I have a usb 3.0 ethernet adapter on the way, so throughput should improve with that.
I have an AMD FX and tried QuickSync for the render but didn't see much difference.
I am not familiar enough with NDI to determine if it will be helpful
I tried sending NDI output from my laptop OBS to OBS on my main computer. This works pretty well.
However, I need to run Zoom on my puny laptop (interactive session), so somehow I've got to feed Zoom with video and audio.
I tried sending OBS on the laptop to the main PC vis NDI and then sending OBS on my main computer to NDI and then using a virtual NDI input to take that and feed to Zoom - results were pretty bad, single frame update every few seconds.
Tried sending NDI out of OBS on the laptop and then feeding that to Zoom on the laptop with an NDI virtual input. That was quite a bit better.
If I do this where is the rendering being done? Is converting to NDI and then feeding that to virtual NDI input more efficient than just using virtual Cam out of OBS - I'm a little confused about how that works.

Are any of these likely to dramatically improve when I drop a gigabit USB3 adapter in the pc later this week?
Thanks for any hints
 

SopherFellow

New Member
so questions I have in addition are:
I understand the rendering if I run OBS on the laptop and stream directly from there - x264 or Quicksync running on laptop
If I send virtualcam to Zoom is that same rendering being done by the laptop? - is the virtual cam using x264 or quicksync, etc?
If I send OBS to main PC via NDI (to "offload rendering") then send that OBS back to Zoom using NDI virtualinput on laptop, where is rendering being done, is it still using my settings in OBS - how does NDI know what my settings were

Thanks, I guess it pretty obvious I don't understand what is going on with NDI
 

bradjshannon

New Member
so questions I have in addition are:
I understand the rendering if I run OBS on the laptop and stream directly from there - x264 or Quicksync running on laptop
If I send virtualcam to Zoom is that same rendering being done by the laptop? - is the virtual cam using x264 or quicksync, etc?
If I send OBS to main PC via NDI (to "offload rendering") then send that OBS back to Zoom using NDI virtualinput on laptop, where is rendering being done, is it still using my settings in OBS - how does NDI know what my settings were

Thanks, I guess it pretty obvious I don't understand what is going on with NDI

NDI plugin copies the encoded video output from OBS, puts it in a box, and ships it over the network to receivers that expect an NDI source.

Virtual cam copies the encoded video output from OBS, puts it in a box, labels it "Totally Normal Webcam," and hands it to programs on the computer that expect a webcam.

As you can see, these plugins have similar functionality. Now for your questions:

I understand the rendering if I run OBS on the laptop and stream directly from there - x264 or Quicksync running on laptop

Let's just say x264 to keep it simple. But it could be any encoding.

If I send virtualcam to Zoom is that same rendering being done by the laptop? - is the virtual cam using x264 or quicksync, etc?

The laptop is running OBS. OBS takes the video source(s), manipulates them however you say, then encodes it according to your settings. In this case as x264.

Normally, OBS lets you use the encoded video in just a couple ways: stream it somewhere, or save it somewhere. Virtual cam and NDI each give you another option. Virtual cam lets you use the encoded video as a webcam. NDI lets you send it over the network. Neither of these plugins does any encoding. The encoding is already done.

If I send OBS to main PC via NDI (to "offload rendering") then send that OBS back to Zoom using NDI virtualinput on laptop, where is rendering being done, is it still using my settings in OBS - how does NDI know what my settings were

The laptop is running OBS. OBS encodes the video as x264.
NDI plugin inside OBS makes the encoded video available to the laptop's NDI application as a video source.
The laptop's NDI application sends the video to the main computer's NDI application.
The main computer's NDI application makes the video available to other programs.

Here is where you confuse me with your question. Zoom can directly receive NDI video sources (this might be a very recent change, IDK). So, once the main computer is receiving video over NDI, you should see it available as a video source in Zoom. See attached image:
Zoom_9TxQIuUJqK.png


That is the best way to use the laptop's video as if it were a webcam, on your main PC's Zoom calls.

If that won't work, you can use OBS on the main PC to take the video coming in over NDI, and re-output it with Virtual cam. Then Zoom on the main PC will see 'OBS-Camera' or whatever you choose to call it (which is also shown in the screenshot attached).

When you use OBS to "re-capture" the video (from laptop, coming over NDI) using the main PC, you are having that computer decode the x264 video. This is a pretty minor bit of work for any modern CPU, plus some computers (depending on settings) will offload the decoding to a GPU. But it's similar to decoding a stream from youtube or netflix.

But after decoding the x264 video, you're asking OBS to re-encode it, with whatever settings you've set on the main PC. Again, probably not a huge load for a modern CPU. But more of a load than decoding it.

So, long story short, it's best to NOT re-capture the video using a second instance of OBS. It duplicates some of the effort. Not usually enough to matter, but on low-end systems or if performance is bottlenecked, it matters.

Returning to your question, though -- you ask if you can offload the work by sending video from laptop to main PC and back again. No, you'll only add to the workload, and increase the latency of your video stream. The laptop is already doing all the work of encoding the video into x264. Then your main PC decodes it, re-encodes it, sends it back to the laptop, where Zoom receives it as an NDI source.

I don't think NDI knows what settings were used to encode the video it transports. It's just the shipping company. NDI doesn't care what's in the box, because that has no impact on the job.
 

bradjshannon

New Member
Tried sending NDI out of OBS on the laptop and then feeding that to Zoom on the laptop with an NDI virtual input. That was quite a bit better.
If I do this where is the rendering being done? Is converting to NDI and then feeding that to virtual NDI input more efficient than just using virtual Cam out of OBS - I'm a little confused about how that works.

Are any of these likely to dramatically improve when I drop a gigabit USB3 adapter in the pc later this week?

Good thinking trying both methods on the laptop -- Virtual cam and NDI. For a little while Zoom's software worked with one but not the other, so this was actually necessary. But a recent update of Zoom fixed it and both sources are now functional.

Is one better than the other? No, not in any meaningful way, performance-wise. The laptop's CPU is still doing the video encoding, as per settings in OBS. The only change is how that encoded video gets to the Zoom application. I don't think there's enough of a performance difference there to matter.
 

SopherFellow

New Member
So, now I'm realllly confused. I have read dozens of articles and discussions about "offloading the encoding to a separate PC"
This consists of sending NDI from the gaming machine and then running OBS on the 2nd machine and streaming from there.
So, if NDI is just going to encode with x264 to send it to the 2nd PC, how are you offloading anything?? I thought NDI was using a proprietary, more efficient encoding and that was how that worked.

PS I realize it wasn't clear from my post, but I need Zoom on my overloaded PC, because it's in my studio and it's an interactive meeting - I'm experimenting with TeamViewer to run zoom on the other PC from my laptop, but I need some stability testing before I could go live.
 

bradjshannon

New Member
Sorry, I was mistaken about NDI -- it does not use the OBS encoding settings. NDI is its own encoding, which is proprietary.

So you can send video from your laptop to main PC using NDI, encode to x264 on the main PC. That will save your laptop from doing x264 encoding.

But from that point, I don't know how to send the x264 video back to the laptop. Actually, I don't know why you'd want to, as I can't imagine any performance gains over sending the cambera straight to zoom on the laptop.

I sure would love to edit my post and correct my mistakes but editing isn't allowed ???
 

kyguy

New Member
Palakis submitted a new resource:

NDI Input/Output plugin for OBS Studio - NewTek NDI™ integration into OBS Studio



Read more about this resource...

Hello, I've had some serious issues on my Mac after I [think I] made a mistake on install.


Any guidance?

Thanks,

Kyle
 

skywalker2

New Member
I all. I'm completely newbie on OBS. I need to add a video source to my pc OBS that is over my LAN (in a friend pc with OBS too). Can I use NDI for this? How? Thank in advance. Regards.
 

Double0Kills

New Member
I have experienced inconsistent framerates on my encoding PC while not registering dropped frames on my encoding PC when sending smooth framerates from my gaming PC (even just playing videos on YT) through an NDI connection over gigabit network. I have checked both OBS applications, and done log file uploads to obs analyzer which come back clean. Sometimes (once in a while) it's perfectly smooth, other times not, I can't seem to figure out how to get the feed to show up properly and consistently.

I see the stuttering in the preview of the encoding OBS, and I see perfectly smooth frames in the source PC Preview. I've tried turning off previews, I run as admin, I have network bandwith to spare, my cpu and gpu on both machines have plenty of overhead when I am seeing the freezing. Stats do not show dropped frames on either computer either, so I don't exactly understand where it's coming from.

Any ideas would be welcomed. Thank you!
 

dprbass

New Member
Hi!.

I just installed NDI HX Camera on my Iphone XS Max and I have a Macbook Pro 2011, with OBS at the latest versión and lastest version of the NDI Plugin.

When I add my NDI Source to OBS, nothing pops up, I can't see my phone on OBS, why is that?
 

Baumkuchen84

New Member
Hi folks,
need some help here too...
The NDI plugin works fine! Great work!
However what I wanna do is stream two PCs with webcam vice versa (working in a school and want one teacher to be able to teach a class separated in two rooms. Pupils should see the teacher and the teacher should be able to see the pupils.
I can setup one pc two stream to the other one but if I want to stream from that one's camera back to the first one it's like the signals cancel each other out.
Dunno about the implementation but is it possible to switch the channels or something like that?
rtmp seems kinda slow so I felt NDI was 10 times quicker.
Thanks in advance :)
 

Double0Kills

New Member
If you're sending more than one signal from a computer, you might need to put a video filter of "Direct NDI Output" on the source ( it's called something like that in the filters ), and then you can send more than one signal from your computer to the network instead of just sending the Main feed and the preview feed.

Hi folks,
need some help here too...
The NDI plugin works fine! Great work!
However what I wanna do is stream two PCs with webcam vice versa (working in a school and want one teacher to be able to teach a class separated in two rooms. Pupils should see the teacher and the teacher should be able to see the pupils.
I can setup one pc two stream to the other one but if I want to stream from that one's camera back to the first one it's like the signals cancel each other out.
Dunno about the implementation but is it possible to switch the channels or something like that?
rtmp seems kinda slow so I felt NDI was 10 times quicker.
Thanks in advance :)
 

Palakis

Developer
Palakis updated obs-ndi - NewTek NDI™ integration into OBS Studio with a new update entry:

obs-ndi 4.9.1 (Ubuntu package bugfix)

This releases fixes an issue targeting the Debian/Ubuntu package. For the latest Windows and macOS release, see obs-ndi 4.9.0.

Only use this release with OBS Studio v25 or above!

Changes since 4.9.0

  • Ubuntu Bugfix: plugin installed in the wrong location (is supposed to be in /usr/lib/obs-plugins instead of...

Read the rest of this update entry...
 
Top