- OBS virtual cam on Linux.
- cash_flagg
- GitHub — CatxFish/obs-v4l2sink: obs studio output plugin for Video4Linux2 device
- viciousflamingos
- GitHub — CatxFish/obs-v4l2sink: obs studio output plugin for Video4Linux2 device
- cash_flagg
- greg23
- Profejuca
- obsnewnoob
- CLOVIS
- juan0172
- buggydad
- buggydad
- Jorge Gustavo Rocha
- Jorge Gustavo Rocha
- Jorge Gustavo Rocha
- Metabob
- Metabob
- Metabob
- Tuna
- liekendeeler
- jukjukjuk
- Open Broadcaster Software
- Installation
- Configuration
- Hardware video acceleration
- Recording output
- Hotkeys
- Virtual camera output
- Wayland
- Global shortcuts in KDE not working
- Tips and tricks
- Browser source
- Capturing via Vulkan/OpenGL
- Encoding using GStreamer
- Encoding using AMF
- Manual plugins installation
- See also
- Enable virtual camera in OBS Studio on Fedora
- Installation
- OBS Studio
- Thanks for reading this post!
OBS virtual cam on Linux.
Is there a way to use the OBS virtual cam on Linux? On other installations, I usually see a button on the right that allows you to turn on the virtual cam, but on my Linux installation, the option is not appearing. Is the virtual cam not on Linux or is there something else that I must do?
cash_flagg
New Member
Virtual cam support is not built into the linux version just yet. You can get the functionality with the v4lsink plugin here:
GitHub — CatxFish/obs-v4l2sink: obs studio output plugin for Video4Linux2 device
obs studio output plugin for Video4Linux2 device. Contribute to CatxFish/obs-v4l2sink development by creating an account on GitHub.
viciousflamingos
New Member
Virtual cam support is not built into the linux version just yet. You can get the functionality with the v4lsink plugin here:
GitHub — CatxFish/obs-v4l2sink: obs studio output plugin for Video4Linux2 device
obs studio output plugin for Video4Linux2 device. Contribute to CatxFish/obs-v4l2sink development by creating an account on GitHub.
cash_flagg
New Member
Looks like version OBS Studio 26.1 Release Candidate 1 has this feature built in, though not sure if you still need this plugin code or not, since I have not tried this release.
greg23
New Member
The current Linux release is 26.1.1 and no, it does not have the VirtualCam. I am curious to find out if v4l2sink will work with Discord. I will try as soon as I’ve got some time.
Profejuca
New Member
You have to install v4l2loopback-dkms to have the virtual cam option (the same is required for sink) in 26.1.
obsnewnoob
New Member
With 26.1.1, it does have the virtual cam feature, but you need to apt install v4l2loopback-dkms (and then possibly quit obs and reload it)
CLOVIS
New Member
Can confirm the same solution works for ArchLinux, for anyone else using it, I added a bug report here: https://bugs.archlinux.org/task/69918
juan0172
New Member
Good afternoon. Yes, after install dkms, virtual camera button appears, but, it’s not posible run that virtual camera, even, in console, shows a warning that inform. Still read about.
buggydad
New Member
Strange bug: I’m on OBS 25.1.1 and can start Virtual Camera into Zoom (v 5.5.4). Other people in Zoom can view my Virtual Camera but it is NOT being displayed in Zoom at all for me. I just get a black screen instead. Thoughts?
buggydad
New Member
Strange bug: I’m on OBS 25.1.1 and can start Virtual Camera into Zoom (v 5.5.4). Other people in Zoom can view my Virtual Camera but it is NOT being displayed in Zoom at all for me. I just get a black screen instead. Thoughts?
Jorge Gustavo Rocha
New Member
OBS 26.1.1 here, on Ubuntu 20.04, nvidia drivers, software encoding (x264), flatpak based install.
I’ve installed v4l2loopback-dkms , but no Virtual Camera option added.
Any ideas? Am I missing some additional package or configuration?
Jorge Gustavo Rocha
New Member
I was an easy fix. I’ve uninstalled OBS from flatpak and installed it from ppa. It works now.
flatpak remove com.obsproject.Studio sudo add-apt-repository ppa:obsproject/obs-studio sudo apt install obs-studio
Jorge Gustavo Rocha
New Member
Metabob
New Member
Latest OBS, Mint 20.1 (4.8.6), Kernel 5.4.0-70, NVIDIA 460.39 Drivers
I’m experiencing a weird issue: a couple of weeks ago I finally managed to get OBS working properly, without weird interface glitch and including virtualcam.
Today I wanted to use it and had to realize that the virtualcam option is missing. For some reason it is just gone.
I have tried re-installing OBS and rebooting but the button didn’t come back.
Has some one an idea how I can find out why it went missing?
Metabob
New Member
Metabob
New Member
Now I have re-installed everything and virtual cam is back, but so is the weird display glitch.
Obs only shows everything as it should as long as I don’t have my second monitor connected. Otherwise it makes super weird stuff. Probably because of the high-dpi scaling freature that I need to use in order to be able to read stuff on my my 165ppi displays.
Tuna
Member
Looks like you run a Wayland session. You will need OBS Studio v27 for that support. Else run it as a XWayland session or login in you system via classic/X11 session.
liekendeeler
New Member
Hi, I’m new with OBS and wanna use it together with ZOOM.
I have the XWayland system running under Debian, where to get the v27?
Thanks
jukjukjuk
New Member
Hi
My virtual cam is also lost at the moment.
I’m on debian buster, amd64.
I got it to work yesterday, after updating the debian generic Kernel to 5.10.0-6-amd64 and reinstalling it from the ftp.de.debian.org mirror, so I got the obs-studio v26.1.2.
After that I wanted to try also the liquorix kernel, which didn’t functions out of the box. So I just wanted to deleted some old kernels, but accidently removed also the fresh installed gerneric kernel mentioned above. Now I reinstalled it — but the virtual camera is lost.
The v4l2loopback-dkms package is up to date.
What could be the Problem?
Open Broadcaster Software
Open Broadcaster Software (OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.
Installation
OBS can be installed with the obs-studio package, or obs-studio-git AUR for the development version.
Other clients that provide other functionality are available:
Configuration
For easy configuration, Tools > Auto-Configuration Wizard can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).
Hardware video acceleration
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in Settings > Output > Streaming > Encoder (may have to first set Settings > Output > Output Mode to Advanced). See Hardware video acceleration if a hardware encoder is not detected.
Recording output
By default, OBS will output recordings in the user’s home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in Settings > Output > Streaming > Encoder.
Hotkeys
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair’s function.
Virtual camera output
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, install v4l2loopback, then the Start Virtual Camera button will appear in OBS. If the v4l2loopback kernel module is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using pkexec(1) ).
Wayland
Since OBS is a Qt application, see Wayland#Qt to make it work under Wayland. See PipeWire#WebRTC screen sharing to enable Wayland screen capture.
Global shortcuts in KDE not working
The global shortcuts set in OBS only work when OBS is in focus. As a workaround, you can control OBS through its WebSocket interface, which can be enabled in OBS by going to Tools > WebSocket Server Settings and selecting Enable WebSocket server.
Note: obs-studio is still missing WebSocket support FS#76710, but the Flatpak and some of the AUR packages do have it.
The WebSocket can then be controlled with obsws-python or obs-websocket-py (version >=1.0). Either of them can be installed with pip. Then in System Settings > Shortcuts, you can add the following command for obsws-python to set your custom shortcut to toggle recording:
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
python -c "import obsws_python;obsws_python.ReqClient(host='localhost',port=4455,password='yourwebsocketpassword').toggle_record()"
Or the following command if you’re using obs-websocket-py :
python -c "from obswebsocket import obsws,requests;c=obsws('localhost',4455,'yourwebsocketpassword');c.connect();c.call(requests.ToggleRecord());c.disconnect()"
The WebSocket password and port can be found in WebSocket Server Settings > Show Connect Info.
Tips and tricks
Browser source
The obs-browser plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type.
The default obs-studio package does not provide this plugin. It can be added via other clients or plugin packages:
- obs-studio-gitAUR compiles with the browser plugin.
- obs-linuxbrowserAUR (or obs-linuxbrowser-binAUR for pre-compiled binary) provides the old linuxbrowser plugin. Works with the default client, but is abandoned and slightly outdated. The quickest way to get the plugin as of December 2021.
- obs-studio-tytan652AUR is a custom client that provides the browser plugin as well as browser docks, along with other general improvements.
Capturing via Vulkan/OpenGL
The obs-vkcapture plugin adds the capability to capture Vulkan or OpenGL programs by hooking into those APIs directly, rather than using generic Xorg or Wayland window capture APIs. To use it, install obs-vkcapture AUR , as well as lib32-obs-vkcapture AUR if capturing 32-bit applications. Follow the instructions in the GitHub repository to setup a Game Capture using the plugin.
Encoding using GStreamer
obs-gstreamer is a project which provides:
- An encoder plugin for using GStreamer for encoding.
- Plugins for using a GStreamer pipeline as a source, video filter, or audio filter. This is an advanced capability intended for users familiar with GStreamer usage.
AMD GPU users report that VA-API via GStreamer outperforms OBS’s default VA-API video encoding capabilities. To use obs-gstreamer for encoding, install obs-gstreamer AUR and change OBS’ encoder to GStreamer Encoder. If OBS gives an error regarding encoders you might need to install the gstreamer-vaapi package.
Encoding using AMF
obs-studio-amf is a patch that ports the AMD Media Framework encoder to Linux, which was previously exclusive to Windows.
To make this work you need to setup AMDGPU PRO, install obs-studio-amf AUR and set the VK_ICD_FILENAMES environment variable:
$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json:/usr/share/vulkan/icd.d/amd_pro_icd32.json obs
With the most recent graphics drivers, AMF should outperform any hardware encoder for AMD in both speed and quality.
Manual plugins installation
You can manually install plugin to the ~/.config/obs-studio/plugins/ . The folder structure is the following:
~/.config/obs-studio/plugins/plugin_name/bin/64-bit/plugin_name.so ~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini
See also
Enable virtual camera in OBS Studio on Fedora
By default on Fedora, when you install the package obs-studio you might not see the “Start virtual camera” button.
The reason is that OBS is expecting a v4l2loopback module to be loaded.
Installation
In order to do so, you will need to enable rpmfusion repositories and install the package “v4l2loopback”:
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-34.noarch.rpm
sudo dnf install v4l2loopback kmod-v4l2loopback
sudo modprobe v4l2loopback devices=1 max_buffers=2 exclusive_caps=1 card_label="VirtualCam"
If modprobe fails try this before rerunning the modprobe command:
You can configure some settings for your new virtual camera with v4l2loopback-ctl .
OBS Studio
Now, start OBS Studio and you should see the “Start virtual camera” menu in the lower right corner.
The virtual camera allows you to inject pictures, logos, text, video streams (using VLC), etc. in your original webcam stream.
When in Zoom, Google Meet, Webex or others, simply choose the virtual camera as your video input device, and your audience should whatever you added in OBS Studio.
Thanks for reading this post!
Did you find an issue in this article?
— click on the following Github link
— log into Github with your account
— click on the line number containing the error
— click on the «. » button
— choose «Reference in new issue»
— add a title and your comment
— click «Submit new issue»
Your feedback is much appreciated! 🤜🏼🤛🏼
You can also drop me a line below! Copyright © Sebastien Wains