

We’re still in the myobscode directory, so we just grab the code:Ĭmake -DLIBOBS_INCLUDE_DIR="././obs-studio/libobs" -DCMAKE_INSTALL_PREFIX=/usr. The resulting code will be in directory myobscode/obs-studio Clone the plugin code This grabs the code for OBS Studio as well as a bunch of components it depends on. It’s neater that way.Ĭd myobscode Clone the code for OBS Studio Let’s create a directory to hold all the code related to this little exercise. Sudo apt install cmake qtbase5-dev Create a holding directory Do let me know if there are more I should include here. I have a lot of code building tools already installed, so you might encounter some other missing dependencies. Do check the code if a lot of time has passed since this was published, since it might have changed. The procedure is documented in the code repo, but I’ll duplicate it here so you can get all the info in one place. Building The Moduleīuilding the source was fairly straightforward. The method I’m documenting here I found the simplest (relatively speaking), but if you want to do some more complex things with multi-streaming, you might find the discussion useful. That thread contains a bunch of other hacks to get things working, which you might find interesting. This plugin was originally for Windows but after people asked in this issue thread, the author wrote a version for Linux. To get OBS Studio to send output to our new video device, I used the v4l2sink plugin from. Update 19 July 2022: You can skip this section now as the plugin capability has been built into OBS since version 26.1.0 It sets the device to OUTPUT only mode and it won’t start announcing CAPTURE capabilities until you connect a producer (like OBS Studio) to it. The card_label should show up in Zoom (and other apps) as the name of the device, making it easier to select the right one.Įxclusive_caps=1 is necessary for some applications (like Chrome) to be able to use the device. The parameter to video_nr sets the number of the device created, so if you wanted /dev/video24 you would use video_nr=24. This will create our new video device as /dev/video10. Sudo modprobe v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1 We need to load it using modprobe, and we’ll add some parameters to make it easier for us to identify it from inside programs like Zoom: Linux has a kernel driver called v4l2loopback that can do this for us. Think of it as a virtual camera, if you like. You need to add a new video output to the system that Zoom can use to pull the video in from. This installs version 25.0.4-0obsproject3~bionic at time of writing. OBS Studio is available using APT in Ubuntu, so you can install it like this:



I’ll try to give you pointers for where to start looking for solutions if your problem involves Windows or Mac, but you won’t find the answer here. This is not a discussion of how to use OBS Studio on Windows, or MacOS, any non-Ubuntu flavour of Linux, or anything else. Update 19 July 2022: OBS Studio now supports virtual cameras without a plugin as of version 26.1.0. This post is a summary of the various steps I used to get OBS Studio working on Linux and piping video into Zoom. It works! And it wasn’t too hard to get working, but it also wasn’t simple and I had to hunt around a lot to figure out how to do it. I had the bright idea that I might like to use something like OBS Studio to make my video calls fancier.
