Question / Help Has anyone successfully output from OBS to a live ZOOM conference on linux?

Bogus Exception

New Member
Experts,
Windows OBS users have a 'virtual camera' plugin that OBS can output to, but that app is not for linux.
Simply put, would love to use the editing, PiP, etc. options in OBS to serve as an input to a normal Zoom meeting as host.

Zoom has this concept of "Share', which can be an app or the entire desktop. This is what I see on a ubuntu laptop:

Screenshot_2020-03-22_14-21-33.png

I have a low res camera in the lid. But with the windows app, another 'camera' shows up that when selected utilizes the output of OBS, with audio and video. Mind you, we're not talking about sharing the app itself, but the "output" of OBS, as in the result of mixing, fading, various video sources & media, etc.

If I click "Video Settings", along with the usual is a pull-down for selecting which a/v source to use-which has only my laptop cam as a choice.

It would seem that in order to use Zoom (or any other conferencing app/service?) there needs to be a way for the output of OBS [streaming] to be seen as an A/V input.

Has anyone out there tackled this yet?
 

aracloud

New Member
@Bogus Exception

Maybe we could share some experiences together!

This is maybe what you are looking for as vcam: https://github.com/CatxFish/obs-v4l2sink/releases
So, you don't need to build it you can use the deb file to install it easy.

I use Linux Mint with OBS Studio and I installed this virtual cam deb file. After the installation you will find under "tools" in OBS the v4l2sink plug-in which you need to start as described.

Of course you need "v4l2loopback" pre-installed which comes with Ubuntu based software repo as described in the link above.
Then you need to start v4l2loopback as module at system start-up.

My setup works basically but when I share my OBS projector via virtal cam in Zoom the zoom participants see some lags, flairs crossing the screen. So, the stream is not really smooth. This what I still struggle with.

In case I use something different as video conferencing than ZOOM... for instance https://meet.jit.si/ it works perfectly.
But, I want to have the same perfect streaming experiences with ZOOM as well.

Let me know if you need further help with it.

regards,
ara
 

derekkeats

New Member
Hi Ara, I am on Ubuntu 19.10 and I can use the projector with screen capture and it works perfect in Zoom as I have two monitors. I have installed the v4l2sink deb to try the virtual cam approach, but I always get "format not support" when I try to start it. Any idea how to fix that? Thanks, Derek
 

aracloud

New Member
Hi Ara, I am on Ubuntu 19.10 and I can use the projector with screen capture and it works perfect in Zoom as I have two monitors. I have installed the v4l2sink deb to try the virtual cam approach, but I always get "format not support" when I try to start it. Any idea how to fix that? Thanks, Derek
Hi Derek

In case you are familar with modprobe, insmod, lsmod etc...

Here is what I did:

sudo apt install v4l2loopback-dkms
$ cat /etc/modules
v4l2loopback
Load die module with those options (video_nr=5 will result in /dev/video5)
$ cat /etc/modprobe.d/v4l2.conf
options v4l2loopback video_nr=5 card_label=“vcam”
At this point you need to install the obs v4l2sink deb package from above to install the OBS plug-in
which you can start unter "Tools" afterwards.
"sink" will map your connected webcam /dev/video0 to /dev/video5 at the end.

--> Now I can start OBS with the v4l2sink plug-in to start my "vcam"... In zoom I see the vcam...
But then when I start screen sharing in zoom I have some horizontal flickers running through the screen on the participants side.

Any idea from where the flickers come from... ? Do you face the same behavior in case of screen sharing via zoom on linux?
 

Amanda1990

New Member
Using the OBS plugin: https://github.com/CatxFish/obs-v4l2sink, I am getting the same error: "Format not support"...
so I can't proceed.
Does anyone have a fix?
Running OBS 25.0.4 on Ubuntu 18.04.4, kernel: 5.3.0-46-generic #38~18.04.1-Ubuntu SMP x86_64
Should I do something with Ubuntu 19 backports?
Maybe workaround the obs-v4l2sink bug by having OBS create a custom stream, then pipe it using ffmpeg or GStreamer, into v4l2loopback?
Does anyone know how to do this?
 
Last edited:

Amanda1990

New Member
Success! I did the following:
1. Updated OBS to 25.0.7
2. Downloaded and installed v4l2loopback-dkms_0.12.5-1 from Debian Sid:
https://packages.debian.org/sid/v4l2loopback-dkms;
3. Erased the v4l2loopback module from the kernel, and re-loaded the new v4l2loopback module;

then obs-v4l2sink is working!

(Note that I am running kernel: 5.3.0-46-generic #38~18.04.1-Ubuntu SMP x86_64.)
 

aracloud

New Member
Hello Crowd

Just as my feedback to the problem I faced with Zoom Meetings (actually I faced the same issue also with MS Teams).

I figured out why I got those flickerings during "Zoom Meeting screen sharing" !

I was not due to OBS it was simply the GPU (Graphic Card Processor Unit) power which was obviously not sufficient enough.

But how do you figure out such issues when I runs locally perfect and you just see the issue remotely?

There is a tool called nvidia-smi (NVIDIA System Management Interface), which helped me to detect the issue.
I started just with normal Zoom without OBS stuff and with the old GPU it was flickering less... as I started
additionally with OBS (more GPU power needed) flickering increases. This was my indication that there must be something
related to the GPU power. Therefore I ordered a new GPU with more power and I made it.

GPU Before: PNY P400
GPU After: MSI Geforce GTX 1660

cheers!
 

aracloud

New Member
Hi Ara, I am on Ubuntu 19.10 and I can use the projector with screen capture and it works perfect in Zoom as I have two monitors. I have installed the v4l2sink deb to try the virtual cam approach, but I always get "format not support" when I try to start it. Any idea how to fix that? Thanks, Derek
As you can see my post.... It was my GPU ;-)
 

psyburr

New Member
I'm using Manjaro on a Razer laptop whose built in webcam does not work in applications—although guvcview works fine using the preview, other tools don't play nicely and don't try and get creative with the settings because the device may just become unresponsive and hang guvcview. The problem has been addressed in the ArchWiki and there just isn't any interest from anyone for years to solve such a unique problem with a niche product.
Now that we know the webcam on my machine is useless, I want to say that the obs-v4l2sink works fantastic along with the v4l2loopback-dkms and while it certainly is a bit of a messy DE at its worst when in operation with Firefox, guvcview, obs, pavucontrol in in the current desktop; at its best I can stream without the web browser and just use a stream key and url for a certain service without hiccups and a video bit rate steadily held at 4-6Mbps.
@Amanda1990 and anyone else having trouble within obs and the obs-v4l2sink tool, the /dev/videoX you want to point to is a virtual device created by v4l2loopback-dkms following sudo modprobe v4l2loopback in the terminal. There are options that can be added at the command line in order to assign multiple devices, give them unique names, and more found at the github project page. I load the module as-needed for the current session and the defaults will assign your virtual device the first /dev/videoX that is available (so the highest number in place of X). If you point obs to use an actual video input, you will receive the error stating the format is not supported.
To sum this up, I first load the v4l2loopback-dkms kernel module. Then I can start the v4l2 Video Output tool within obs (you are free to close the window, the tool remains running). Then I am able to create the scene in obs using my formerly useless webcam by assigning guvcview's preview window as a source (this part is unique to me of course, if i use an external camera i can just assign the proper /dev/videoX as a v4l2 video source instead of window capture), in addition to a desktop capture, a capture from mpv maybe, as well both my laptops microphone mixed with the pulse audio monitor of a music playlist running in the background via moc for instance.
In conclusion, this is using Manjaro and the ArchUserRepository of course, and I have not tested it in the wild on Zoom recently. Although I have certainly used v4l2loopback-dkms with zoom and sending ffmpeg outputs to the device and was able to use that as a source for zoom. I can confirm it does work with Firefox, and any issues experienced with screen sharing and Firefox/Linux have all been mitigated for me by having obs be the master chef combining all of the ingredients together and sending it to a virtual webcam that 3rd party applications aren't much the wiser of it.
I'm far from any expert with any of this, and a lot was trial and error as opposed to understanding the kernel module and A/V sources/sinks so please correct me where I'm making things for myself more difficult but I wanted to chime in with a bit of success here from a different Linux flavor while also addressing a question about an error from the obs-v4l2sink tool that I had encountered myself and found where I had gotten things mixed about and then resolved easily enough.
 
Top