Take Remote Worker/Educator webcam video calls to the next level with OBS, NDI Tools, and Elgato Stream Deck
Over the years I've collected a few webcams, some quality and some not. If you're interested in creating the ultimate remote worker webcam setup on a budget, I've written a blog post on the topic.
However, now that we are a remote workers - my entire company has everyone working remotely until further notice - I've found that an extra webcam or two can really be helpful if I want to point a camera at something on my desk, or get a wider view, look at a whiteboard, etc.
Of course, you can always change video inputs in any application but there's that...pause...that...hang...that moment. You have to switch into your apps Device Settings, do the dropdown, switch, wait, and then you've changed the camera.
What if you could change cameras - scenes - like you were a movie director. But, you have minimal budget. What can you do for nothing or next to nothing? A lot.
What's the goal?
With minimal setup, you can feed all your webcams, your desktop itself, and really anything you can express as a 'scene' into a software video compositor and then output them as a virtual webcam.
Then you select and use that Virtual Webcam in your remote video conferencing tool of choice! The results are amazing.
Setup
First, get OBS and NDI Tools, specifically NDI Virtual Input.
- OBS (Open Broadcaster Software) is free and open source software for video recording and live streaming.
- You have likely heard of this software package when you read about Twitch Streamers. Jeff Fritz uses this for his Live Streaming Setup. https://obsproject.com/
- NDI Tools and NDI Virtual Input.
- This is a software package that creates a virtual camera input.
- NDI Plug for OBS : obs-ndi - This allows the OBS software to send its output to NDI, the virtual camera.
- ALTERNATE:
- You can avoid using NDI Tools (which is an extra hop) and use OBS-VirtualCam as plugin instead. It will create a Virtual Camera locally and directly send 1080p video to a Virtual Cam called OBS-VirtualCam.
- OPTIONAL: Elgato Stream Deck and the Stream Deck Software
- They've got 6- and 15-key decks. The have full color LCD keys and you can make the icons look however you want. Ya, it's a portable hotkey button machine, but it's amazing. Note in the upper right corner of my Stream Deck I have three OBS buttons, one for each scene and the active one lights up. I've also made buttons to change my primary monitor's resolution. More on that in a future blog post. I've also got Elgato Stream Deck buttons to change my audio inputs an outputs as well, with a how-to.
- Don't want to buy a physical device? Use your phone as a Stream Deck with Stream Deck Mobile
- You could also buy Touch Portal for about $12 and use any old Android phone you have laying around as a remote control for this purpose!
- They've got 6- and 15-key decks. The have full color LCD keys and you can make the icons look however you want. Ya, it's a portable hotkey button machine, but it's amazing. Note in the upper right corner of my Stream Deck I have three OBS buttons, one for each scene and the active one lights up. I've also made buttons to change my primary monitor's resolution. More on that in a future blog post. I've also got Elgato Stream Deck buttons to change my audio inputs an outputs as well, with a how-to.
Install these three things and run OBS. When you run OBS after installing the NDI plugin, you'll need to go to Tools, NDI Output Settings and select Main Output. Leave OBS running.
Then run Virtual Input and right click on it in your tray (near the clock) and set it's output to your computer name | OBS. Mine is IRONHEART in the picture below. If you see None, you likely don't have OBS running.
Define your Scenes. Scenes are a collection of sources.
Add and name a scene, then add a Video Capture Device for your camera. I also like to set the Resolution manually.
I made one Fullscreen Scene per webcam, and one for my desktop that also includes my camera in PIP in the corner.
NOTE: If you're a teacher, perhaps you share just your lesson plans or browser window and yourself in video another way. You can be split screen, pip, or whatever makes you happy! Your scenes can be as complex as you'd like and include lesson plans, links, resources, and more!
To review:
- OBS is a compositor that feeds into
- NDI Virtual Input
- And Scenes can be changed dynamically (see animation at top of this post) by a Stream Deck, hotkey, or Stream Deck Mobile
- Select "NewTek NDI Video" as your webcam in Teams or Skype or Zoom!
At this point you can change camera angles and select scenes when you're on a call! The transitions will be be instant and smooth for your viewers. This also works great for workshops and teachers teaching classes!
Thanks Jeff Fritz for your help with this! Do you have any OBS teams, dear reader?
Sponsor: Couchbase gives developers the power of SQL with the flexibility of JSON. Start using it today for free with technologies including Kubernetes, Java, .NET, JavaScript, Go, and Python.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
That said, what's your view on this: often when I'm presenting live and showing stuff, people will expect me to "share my screen". Depending on the software I'm using (Skype/MS Teams/GotoMeeting/Slack/Discord), folks won't be able to fullscreen my camera view (or don't know how to), and so I end up presenting in my tiny square in their Brady Bunch screen.
So ideally, I'd send OBS's output to a Windows Display Adapter I can actually share as a screen. I know OBS can project its output to one of my monitors, and that works, but I don't like sacrificing one of my monitors during a presentation, plus it duplicates whatever I'm actually showing, and that gets confusing ;)
I'd love to hear what you think, thanks Scott.
I need to display:
1. PowerPoint in presentation mode
2. View my speaker notes
3. View my audience
I just ordered another monitor assuming need a three screens to get this to work.
In Microsoft Teams the image is flipped horizontally and based on the last screenshot you had that problem as well.
Any suggestions on how to solve that?
Is there some trick to getting the video started up? Or should it just be working automatically?
This blog was something I've looking for for quiet some thing, but I had no idea how to google for it. I owe you bigtime!
Our university college uses Panopto to record lectures, and guess what, I can feed my NTI virtual camera into that software as well: awesome :)
For those interested, here's how: https://support.panopto.com/s/article/NDI-Support
Now I do.
Keep on keepin' on Scott! 😊
For a weekly debugging show I have used MS LiveMeeting, Synplicity, Lync and now MS Teams in the last 6 years. But I never record the show in any of the tools. The clouds are great but I prefer to have control over the recording quality and frame rate. When I want to show e.g. hickups in some video playback due to performance issues the "normal" recording options do not cut it. I always record my desktop with OBS, do the show, transcode it with ffmpeg to mp4 with a decent constant bitrate and send the link to a network share along with the ppt to the interested people. Regardless which tool we will be using in 2 years my share stays and I can relocate everything with a simple file copy.
I consistently get feedback that people tend to look at the offline version because they have higher resolution and are able to read everything on my screen. They can follow the content without frame hangs due to quality issues with the local network in India or wherever they are watching. I also set the desktop resolution of my recording monitor to 1024x1080 because not all people watching have wide screens with 1980x1024 which can make it hard to follow if you need to scroll around or zoom into in the recording. On the plus side I barely need any zoom tool because the resolution forces me to arrange things in a readable way.
Question: Have you been able to route desktop sound in to teams while using OBS?
Thanks Scott - keep making life fun and more awesome for us all!
NDI Tools direct download link
Can anyone actually verify this works with Skype? I can't seem to get it work and am looking for a virtual camera solution that works with Skype. Neither OBS VirtualCam or NDI Virtual Input seem to work with Skype.
VirtualCam works with GoToMeeting. NDI appears in the camera list of GoToMeeting but doesn't actually load.
Neither of them show up in the list of webcams available in Skype, unfortunately.
Comments are closed.