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.
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.
- 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.
- 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!
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!
- 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?