Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can also use MediaTek's NDI Virtual Input with some desktop apps (like Skype), but I personally use this with OBS to do two things:

- Send out a composite overlay (screen capture + webcam + lower thirds) on Teams/Skype/etc.

- Send out screen capture from another machine (usually OBS to OBS via NDI and then out via this plugin)

OBS is a lot of fun, but, alas, extremely demanding on system resources in some configurations, enough that I've started considering getting a new machine solely for video conferencing.



This works well, when it works, but it seemed like at least with my setup it seriously exacerbated performance problems. 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[1]. 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 <2 per second. This was on a reasonably new/high end machine (X1 Carbon 6th gen) with hardware video encoding in OBS so it almost seems less like an absolute performance problem and more like some kind of lock competition, but I didn't really dig into it very deep at all - it's possible that the NDI stack was doing some software encoding I wasn't aware of and that was just too much.

[1] this happened in the middle of all the zoom bombing and I've seen an allegation that Zoom did this to intentionally nerf that OBS -> 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.


Ha, OBS was the straw that broke the camels back on my work laptop, performance-wise. Built an AMD desktop system and it’s been glorious - forgot what I was missing. Now the laptop mostly sits in a bag.


I came here to say exactly this!


Searching for "MediaTek NDI Virtual Input" does not turn up results with "MediaTek" for me. Did you mean "NewTek" or another NDI tool?

I couldn't find an NDI product for macOS from NewTek.


NewTek does NDI for Mac. The tools and SDK are available for Mac.

https://ndi.tv/tools/

The OBS NDI plugin is not part of OBS proper, but available separately:

https://github.com/Palakis/obs-ndi/releases


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. webcam + extra background/overlay goodies). I hate to say it, but I skipped past the OP's project and tried this suggestion of NDI first.

Amazing. 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. Note: doesn't work with Discord or QuickTime's File > New Movie Recording.

And all this with me being on macOS. Not Windows, but macOS. Incredible.

Steps (should work for macOS and Windows, not sure about Linux):

1. Install OBS. Run it, and set up a basic scene for testing (eg. webcam and a text label).

2. Download/install NDI Tools for your OS from https://ndi.tv/tools/#download-tools (note: system restart required). You only need the "NDI Virtual Input" app; on macOS each app had its own .pkg file bundled in the single .dmg archive; on Windows I assume it's an install wizard with checkboxes for each component. Again, only need "NDI Virtual Input" app/component.

3. Run the NDI Virtual Input application installed in step 2. It should live in your systray (without doing anything useful yet).

4. Download/install the obs-ndi plugin for your OS from https://github.com/Palakis/obs-ndi/releases - right now for Windows or macOS it's version 4.9.0 (expand the "Assets" link). 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.

5. Run OBS. 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.

6. In OBS, go to Tools > NDI Output Settings. If you want to "clone" the OBS output to the NDI virtual device only when you start streaming/recording in OBS (ie. to disk or to a streaming platform like Twitch), check "Main Output". 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.

7. In your operating system's systray (ie. top-right on macOS, bottom-right on Windows), you should have an NDI icon living there as started in step 3. 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.

8. Open Zoom, Teams, or hopefully other apps which will work. Wherever you configure which input source to use for video/camera within that app's settings, there should be an "NDI Video" source. Select that… and BAM – your OBS canvas is now your input source!!

That took so long to type out, I hope someone manages to make use of it. :)


Thank you for sharing this. Your step-by-step worked perfectly for me (on Mac), and now I've got the OBS -> Hangouts setup I was looking for.


Yay!!! There were a couple of steps that took me time to debug how to make it work, so I'm ecstatic that at least one person found my steps useful!!! I don't have recent experience with Google Hangouts, so I'm curious to know whether that was a native app (does Hangouts have a macOS app?), or which browser you used (Firefox, Chrome, or…)?


Just got this up and running following your steps with great success! Enough to bring me back to say thanks!


Sadly I can't get this to work on macOS. OBS works, NDI seems to be installed and configured. It even shows up in Chrome, but I can't select it as an option.


Just for you I installed Chrome to check. It worked for me. I wrote a few things to check below; I suspect your problem is item 'c'.

a) Make sure Chrome has access to cameras (System Preferences > Security & Privacy > Camera > Google Chrome checked).

b) In step 6 from my comment, make sure to try "Preview Output" in OBS's Tools > NDI Output Settings, as "Main Output" requires you to start OBS streaming/recording (which you probably don't want to do).

c) After setting up that OBS setting, clicking the NDI systray icon should show a dropdown list with a single item. You actually need to click that item in the list (it will checkmark it). If you don't do this, you'll get a black screen when trying to pull from NDI.

d) I used https://webcamtests.com/ to test – maybe try that site.

Otherwise I'm sorry, I can't imagine what the problem is.


https://ndi.tv/tools/

He's talking about the poorly named NDI Scan Converter


Pretty sure he's talking about the NDI Virtual Input (which acts as a virtual camera on Windows)


Yes, it's NewTek. Specifically you're looking for this page: https://ndi.tv/tools/#download-tools


I've been running obs on my 2012 mbp with three to four live feeds at a time. My fans spin up and the cpu gets warm, but I haven't been dropping frames or having any major issues.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: