Dylan's Advent of Cool Nerd Things Day 20: OBS
Posted by Dylan Beattie on 20 December 2020 • permalinkIn November 2019, I spoke at an event here in London (yes, a real one – you remember those?) where the venue “forgot” to mention that one of the rooms had a glass ceiling. Now, there isn’t a lot of daylight in London in November, but there’s definitely enough that if you’re in a room with a glass ceiling, your PowerPoint slides aren’t going to project terribly well. I watched a few talks early in the day, realised this might be a problem, and thought “hmm… maybe I can stream my slides to YouTube or something so that folks who can’t see the projector screen well can watch it on their phone?” So I googled “stream powerpoint to youtube” and found out about something called OBS - Open Broadcaster Software. I installed it, poked around a bit, managed to stream my PowerPoint presentation to YouTube, mentally filed it away under “OK, that might be useful one day”, and got on with my life.
Fast-forward to March 2020, and those emails start coming in… a trickle at first, then a wave: “We would like to announce that $conference is now a Virtual Online Event!” And I think “ok, this could get interesting. Perhaps that OBS thing can help.”
And it did. OBS is brilliant, and it’s been an absolute game-changer for me running online events and doing livestreamed shows during 2020. It’s an incredibly powerful, and flexible, set of software tools – and it can be a little confusing until you figure out what’s what.
First up: OBS is an open source project. This means you’re free to download it, use it, share it, modify it - and you’re even allowed to modify it and publish your modifications under a different name. That’s exactly what the folks at Streamlabs have done, which means there are actually two very similar apps out there, “plain” OBS, and Streamlabs OBS. The Streamlabs version adds a bunch of bells & whistles aimed at folks who do a lot of live streaming, but this article is about the original OBS, the one that’s available on https://obsproject.com/.
At a very high level, here’s how it works:
It takes input from video and audio sources. Cameras, microphones, screen sharing, local video files - even online sources like live webcam feeds. You use the OBS Studio software to arrange all those sources into what’s called a scene, and then record the results to a local file, and/or stream it live to services like YouTube and Twitch. You can create multiple scenes, set up hotkeys to switch between them, and get a pretty professional-looking stream going relatively quickly.
You can use OBS quite happily with just your laptop’s built-in webcam and a regular headset mic - capture your screen, put a “talking head” window in one corner using your webcam feed, enable your audio, and you’re good to go. It’s great for recording demos, training videos, or just doing some cheap & cheerful live streaming.
Things get really exciting when you add a bluescreen or greenscreen into the mix; OBS has built-in filters to do things like removing your greenscreen background so you can get a “floating head” effect (anyone old enough to remember the days when humans relied on television for weather forecasts will recognise this as the “TV weather person” effect). Here’s a shot from one of my programming live streams:
And if, like me, you get totally obsessed with things and end up buying four greenscreens so you can have greenscreen backgrounds on three walls and the floor of your office, you can do some fantastically clever things with OBS and multiple camera angles. Here are a few shots from the conference party show I did for BuildStuff back in November – me playing guitar and singing, live, on a virtual stage, with various backing videos and effects composited into the shot live via OBS:
OBS is absolutely packed with features, but one that’s particularly useful is the Virtual Camera - this used to be a separate plugin, but now it’s built in to to OBS Studio. This lets you take your composited video with all your effects and backgrounds and whatever else, and share it as a virtual camera that you can select in Zoom, Google Meet or whatever else you’re using. Use it carefully - remember that Zoom, etc. think that it’s a camera and will apply some fairly hardcore video compression that works pretty well on real cameras pointing at real faces, and if your OBS scene includes source code, diagrams or anything with a lot of detail, it will probably look dreadful, so make sure you test it out before doing anything important.
If you want to see somebody who’s really taken their OBS fu to the next level, take a look at LaylaCodesIt on Twitch. Layla’s partnered with Jim Mc̮̑̑̑͒G and his Silicon Orchid project to really push the limits of what’s possible on a live video stream - immersive 3D backgrounds, realtime raytracing, all kinds of cool effects; check out Jim’s blog post on how it’s all put together.
But like I said, you don’t need all that to get started - just a laptop with a webcam and a microphone. OBS is available at https://obsproject.com/ - and it’s free, so download it, play around with it, and see what you can do. And if this post inspires you to start streaming, give me a shout on Twitch or on Twitter and I’ll drop by and say hi :)