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:
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.