Maybe OBS doesn't natively support any formats you can use for virtual cameras.ģ) If #2 isn't possible, maybe the pixel format transformation could happen on the GPU? I don't know much about GPU programming but maybe this would help.įor anyone looking to set up a virtual OBS webcam in Arch Linux, here's how I did it:ġ. I'm not sure if this is possible, however. I _bet_ this is where the majority of the performance hit from my plugin happens. Not sure why it wasn't working possible it's an obscure OBS bug.Ģ) It might also be possible to get the virtual camera to advertise one of the pixel formats that OBS supports natively which would avoid the pixel format conversion in the CPU. It mostly worked but the virtual camera video wouldn't show up at full resolution in OBS, which is how I typically test while developing. See the CMSampleBufferCreateFromDataNoCopy method (currently unused - linked below) in my code. Three things I know of:ġ) Potentially an entire framebuffer memory copy could be avoided if we could get CMBlockBufferCreateWithMemoryBlock to work. :)įWIW there's definitely some performance optimization that could be done in my plugin. That took so long to type out, I hope someone manages to make use of it. Select that… and BAM – your OBS canvas is now your input source!! Wherever you configure which input source to use for video/camera within that app's settings, there should be an "NDI Video" source. Open Zoom, Teams, or hopefully other apps which will work. With OBS running and configured according to step 6, you should be able to click the systray icon and select that output source as the input source for the NDI virtual device.Ĩ. top-right on macOS, bottom-right on Windows), you should have an NDI icon living there as started in step 3. Otherwise check "Preview Output", in which case your OBS preview will be output to the virtual video device at all times without having to start OBS streaming/recording.ħ. to disk or to a streaming platform like Twitch), check "Main Output". If you want to "clone" the OBS output to the NDI virtual device only when you start streaming/recording in OBS (ie. In OBS, go to Tools > NDI Output Settings. If you're lazy and didn't read the GitHub release notes in step 4, starting OBS should popup with a direct link to the NDI runtime you also need to download/install then restart OBS.Ħ. There's a 4.9.1 update specifically for Ubuntu/Debian, but I'm not sure how those OS's are supported when there is no NDI Tools for Linux in step 2.ĥ. Download/install the obs-ndi plugin for your OS from - right now for Windows or macOS it's version 4.9.0 (expand the "Assets" link). It should live in your systray (without doing anything useful yet).Ĥ. Run the NDI Virtual Input application installed in step 2. Again, only need "NDI Virtual Input" app/component.ģ. dmg archive on Windows I assume it's an install wizard with checkboxes for each component. You only need the "NDI Virtual Input" app on macOS each app had its own. Download/install NDI Tools for your OS from (note: system restart required). Run it, and set up a basic scene for testing (eg. Steps (should work for macOS and Windows, not sure about Linux):ġ. Note: doesn't work with Discord or QuickTime's File > New Movie Recording.Īnd all this with me being on macOS. It took a good 30 minutes to figure it all out, but I now have the output of OBS (in my case, just the preview itself without needing to stream/record) as a video/webcam input source for Zoom, Microsoft Teams, and within Firefox. I hate to say it, but I skipped past the OP's project and tried this suggestion of NDI first.Īmazing. webcam + extra background/overlay goodies). Holy smokeballs, thank you so freaking much!!! This thread caught my eye as I've been wanting to customize my Zoom and MS Teams "stream" (ie. I switched to the NDI solution which seems to be more "official" but gave up on using it as it would consistently work fine for a while, and then framerate would drop to Zoom pathway as it was found to have been used by many zoom bombers, but I have no idea if this is true so don't get out pitchforks about it. Using the older OBS -> Zoom Windows solution of swapping out a video api DLL ("virtual camera") never caused performance problems but stopped working when Zoom started integrity checking/whitelisting all libraries. This works well, when it works, but it seemed like at least with my setup it seriously exacerbated performance problems.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |