Video Calls - We’ve all been on them, and most would tend to agree that they are more effective than conference calls. You can see your audience, read their reactions, and connect with them as a person vs. a voice on the other end of a phone. This typically is a far more productive use of a group’s time – it’s a more efficient medium than a conference call, as you can communicate with both verbal and non-verbal cues. However, there is a new dimension introduced here, which is a live feed of each caller and their immediate surroundings.
This got me thinking – there must be a (relatively) easy way to use old technology we see (well, we actually don’t see it, but I digress) in the nightly news and Hollywood all the time – using a simple green screen to manipulate the background on a Skype for Business (or any other web-cam powered call) in real-time. Spoiler alert – For the life of me, I couldn’t find a write-up for this exact scenario from end-to-end out on the internet, the solution isn’t drop-dead simple, but this guide should make it pretty painless. For the visually inclined, here’s what we’re trying to achieve:
Things you’ll need (mandatory):
- About 1-2-spare hours to get this all set up and working (this took me far longer as I was researching tools and such, but I just went through an exercise of setting up my ‘studio’ yesterday and it took me about 30 minutes from start to broadcast).
- Mac (This also works on PC, though the virtual webcam part is different, this guide is written for the Mac platform). I strongly recommend a dual monitor setup.
- Skype for Business – This happens to be my company’s video call software, though this approach will work with any modern video calling software (e.g. Skype consumer, WebEx, FaceTime, etc.)
- OBS – This is the ‘production’ software, it’s the place where the chroma-key (green-screen) is removed from your footage.
- CamTwist – This is also production software, but it ships with a key plug-in: a virtual web-cam, something we’ll need to get our output from OBS over to Skype in real-time for our audience to see.
- Green or Blue Sheet/Poster board/Wall/etc. – This will serve as your backdrop, though I highly recommend an inexpensive green-screen kit – it makes this so much easier.
Things that may make this a bit easier:
- Green screen and backdrop frame – These can be found inexpensively on Amazon and many other retailers
- Studio Lighting – There’s actually a bunch of kits on Amazon with a green screen, backdrop support frame, and studio lights. I went this route and picked up the green screen and lights in an inexpensive package. I used this one, though there’s tons of options out there.
- Muslin clamps – Helps to keep your green-screen as flat as possible
Extra-credit (things I didn’t use but could make things even easier and/or more flexible):
- External webcam – Will give you more freedom in camera angles and placement
- External microphone – If you using this setup for something more fancy than a video call (e.g. you’re using this method for podcasting, etc. – a high-quality mic will work wonders to improving audio)
Putting it all Together – The Theory:
If you want to dive right in, jump down to the next section – if you want to know how this works (which will save you time in troubleshooting later) read on.
In a typical video call on Skype, the two end-points of interest are connected directly: Your webcam records and outputs directly to the Skype video call. Simple enough. In our scenario, we want to intercept the webcam’s output, manipulate it in real-time, and then output it back to Skype. The easy part is the initial intercept of the webcam’s output – OBS can easily capture that output and has great tools for removing the green screen from the image and compositing whatever background or composition you want to use.
The real challenge is getting that output (in OBS) over to Skype in real-time: Skype (and just about every other common video call software) only accepts video from webcam devices. And our desired video stream is no longer coming from a webcam, it’s now a manipulated video stream sitting in OBS. We need to get our OBS video stream into something that resembles a webcam, so that we can share the manipulated video stream over to Skype. This is a two-step dance, first we need a virtual webcam (that’s where CamTwist comes into play) and then we need a conduit to get the video output from OBS to CamTwist.
This was the hardest part – to do this, there’s a seemingly obscure yet ubiquitous open-source capability for macOS called syphon. Unless you’re very technical and/or deeply familiar with video editing pipelines, that website link will be completely useless to you. Simply put, syphon is a technology that allows for video streams to be shared between different programs, in real-time, with no additional disk i/o overhead. Syphon operates on a client/server model – so your syphon server is outputting a video stream, and syphon clients can consume a server’s video feed. For our purposes, OBS will be our syphon server and CamTwist our syphon client.
From here, it’s just a matter of writing everything up and jumping on your call – here’s how to do that:
Putting it all together – The Recipe:
1. Setup your green screen and/or solid colored background. Here’s my quick tips for setting it up:
a. You don’t need the level of perfection yet (e.g. hold off on steaming your green screen and buying $1000 light bars for now)
b. Try to get as much separation as possible between you and the screen
c. Be safe – you’re playing with metal support structures and lots of lightbulbs/electricity… Be really careful with CFLs, those suckers can break easily and make quite the mess.
2. Get OBS up and running
a. If you haven’t already, install OBS
b. Create a new scene by clicking on the plus button under the ‘Scene’s area of OBS.
i. Pro-tip: OBS can get a little crashy during these next steps, I’ve found it to be more stable when I don’t have external monitors hooked up for this part.
c. Add you webcam to the video source by pressing the plus button, Select “Video Capture Device” and select ‘Create new’. Accept the defaults, and then OBS will drop a picture of you into the scene editor. Use the red handles around your image to fill the black box (which is your video area).
d. Couple of things for us to fix up now, the cropping and then the green screen. First the crop. Right click on Video Capture Device, and select filters. Under the effect filters, click plus and add a crop/pad filter. Play with the various crop values to get it so just you and your green screen is in the frame.
e. Now it’s time to remove your green screen background in OBS. Add another filter to your video capture device, this time we’re adding the ‘Chroma Key’ filter. It’ll preload with defaults for green. Play around with the sliders to maximize the color representation and minimize any green spill around the edges of you in the shot. Take your time here, you’ll appreciate it later. I’ve included the settings I used, those yours will probably be different.
i. You’ll notice that I’ve done a pretty miserable job at lighting my greens screen – thankfully, it’s good enough, but remember that you’re shooting for the most even lighting of the green screen using the minimum amount of light (since it’s going to reflect on you and that’s something you want to avoid unless you want a sweet green halo around you).
f. Press “close” and you’ll now see that you’re a floating person with no background! Now all we have to do is composite the shot, that means we’ll want to add a background. To do this, add another source – namely an image. Select the image you want to use as your background. Add your image, make sure you have it below your video capture device in the source list (since sources act like layers) and adjust your image’s size to your liking and bam!
g. One last thing, we need to add a syphon video source. Pay close attention here, if you mess this part up CamTwist won’t work.
h. Add another video source, the ‘Game Capture (Syphon)’ is what you’re looking for here. This will present you with a confounding screen, here’s what to do with it: Click ‘Launch SyphonInject’. On the flyout app, select OBS and press Inject. You can then quick the SyphonInject program. Back in OBS, select the application dropdown, and select OBS. Press OK to close the window, then double click the Game Capture (Syphon) source again to re-open the window. Now you can select the ‘Source’ menu in here and choose [OBS] InjectedSyphon, then press OK. Move Game Capture to the bottom of your source list, click the ‘eye’ icon to make it invisible, and press the ‘lock’ icon to lock the source.
3. Setup CamTwist
a. If you haven’t already, install CamTwist.
b. Add the syphon source by double clicking it, then (in settings) select the OBS
c. To make sure everything is working, open up the Preview window in CamTwist by going to View à Preview. This will show you what CamTwist is going to broadcast to its virtual webcam.
i. Troubleshooting tip: If what you see isn’t what you have on OBS, you’ll be fighting some gremlins. Start by quitting all the applications, then reloading OBS, making sure you’re seeing everything like you expect to, and then reloading CamTwist. If that fails, try a good ol’ fashioned restart.
d. Once you have the Preview showing what you want, you’re good to go.
4. Fire up your messaging application of choice, in my case it’s Skype for Business
a. Navigate to preferences and change your webcam from FaceTime to CamTwist.
i. Troubleshooting-tip: If you see a bunch of colored bars in CamTwist, quit Skype for Business, quit CamTwist, then restart CamTwist, ensure the preview is good, then launch Skype for Business.
b. Pro-tip: See that annoying red-outline: get rid of that in OBS by clicking the little lock icon on all of your sources
c. Launch your meeting, share your video, and you’re off to the races!That was a marathon post – so I’m going to call it for this one. Just to recap, at this point you should have your studio workflow setup to the point where you can successfully use a green screen in an online meeting.