Spent half the night to wrap my head around this and finally getting somewhere with and and a loopback device so I can stream this "as fake webcam" over WebRTC in video conferences.

Getting this to run (and smooth!) on was a PITA. Who would have guessed. And all because I don't want a "streaming" service or some gorram gold membership in a specific video conference "app".

Expect an article!

@bekopharm I did this a few weeks back and have been using v4l2loopback with OBS to get a higher fps screenshare through Jitsi, working very well :)
Which part was a pain in the ass to you?

@unicorn v4l2loopback is indeed in use (awesome btw - fiddled with it in 2017 already using my action cam as webcam: beko.famkos.net/2017/10/27/son ) but(!) most WebRTC access out there is… flaky at best.

It e.g. always works on webcamtests.com/ but on test.webrtc.org/ basically only when I run FF with new/blank tmp profile reliable.

It does detect my devices but somehow never asks permission for any device but my first "two" cameras probably not liking the "features" (codec is fine).

Follow

@unicorn Also I tried to run without obs-v4l2sink that has to be compiled before too by using a ffmpeg stream but that's so slow…

Puzzling all this together is not userfriendly at all.

I can do it. Joe Webuser? Unlikely.

@bekopharm I agree it's not super consistent, I remember seeing an alternative to v4l2loopback and a chart showing some applications in which either do/don't work. You might also want to give one of the options mentioned on the GitHub a try that is supposed to enable compatibility with chrome/chromium based things. It's mentioned somewhere in the readme :)

The need to self-compile is definitely a barrier, but these two were easier than most things I have attempted to compile.

@bekopharm Overall it's not optimal, but possible in not too much time. It just has a bit of an entry barrier for people who don't mess with their system very much.

Still it was a breeze compared to my attempts to route desktop audio and microphone into a single virtual input device so that the other person can hear things I am hearing 😄
That took me several attempts over the span of a couple of months. Spent like 4 days figuring it out overall, giving up multiple times 😅

@unicorn Been there, done that :)

Fiddled with this all night and learned more than I ever wanted about.

…Chrome is all "loopdevice is not upstream kernel - don't care".

About compiling: That's IMHO luck in this case. I compiled this several times since 2017 and I had to patch stuff manually again and again.

Last commit on obs-v4l2sink e.g. is ~1.5yrs ago. That's never a good sign.

@bekopharm Yeah obs-v4l2sink is not without its issues, for example it just crashes OBS if I try to run it with 720p downscaled video, even though I could swear it worked before 🤷‍♂️

Compilation luck may also depend on the distro; I did it on Debian and Ubuntu, for which there are even some repo packages for v4l2loopback and a .deb file for obs-v4l2sink. Overall it's not great, yeah. Very useful when it works though, would not be able to play a game with my partner over Jitsi without it :)

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!