4 ms·
Using video loopback opens up some great creative possibilities for fun with video conferencing. There's one thing I'd love to achieve though, which seems not
by wdfx 7y ago
Using video loopback opens up some great creative possibilities for fun with video conferencing.
There's one thing I'd love to achieve though, which seems not possible on Linux desktop (specifically kubuntu)....
I want to be able to use the loopback as the source for screen share instead of webcam; i.e. to use the loopback as the conference presentation.
Has anyone got any ideas how to achieve this? Given most conference solutions on Linux do not seem to support either 'share this window' or 'share this screen region'. It seems to be the whole desktop or nothing.
- rkeene2 7y agoThe most naive solution would be to run a nested framebuffer with just the meeting and the windows you would like to share.
- morsch 7y agoHas anyone got any ideas how to achieve this? Yes. Thanks for giving me a reason to write this up. 1. Download and install OBS. OBS will be your video processor; among other things it's super easy to make it capture the whole screen or individual windows. 2. Install the v4l2 loopback kernel module[1]. This makes it possible to have a virtual webcam. On Ubuntu 19.10, this was as easy as apt install v4l2loopback-dkms and then modprobe v4l2loopback. 3. Install the OBS plugin obs-v4l2sink[5]. This exports the OBS output to the new virtual webcam device. I just installed the deb file provided by the project[2]. In OBS, under Tools, select v4l2sink and Start. That's all I had to do. Surprisingly straightforward. At least Chrome and Firefox[3] will now pick up a "Dummy Video Device" webcam that streams the window, or whatever scene I set up in OBS. In my case, the primary advantage was that this virtual webcam is streamed in Jitsi Meet at a higher quality/framerate than the regular desktop share feature. It's also much lower latency than both Twitch and Youtube Live streaming (Jitsi Meet/WebRTC: <1s, Twitch: 5s, Youtube: 15s[4]; YMMV). You also get to enjoy the rich feature set OBS provides for Twitch streams; for one thing, you can include the real webcam video. Bonus: Desktop audio "just worked" in Firefox, which offers the pulseaudio monitor (loopback) device as an input. Chrome doesn't -- probably the intended behaviour. I'm sure there's a workaround. [1] https://github.com/umlaeute/v4l2loopback https://github.com/umlaeute/v4l2loopback [2] https://github.com/CatxFish/obs-v4l2sink/releases https://github.com/CatxFish/obs-v4l2sink/releases [3] For some reason, Gnome's Cheese won't [4] Microsoft's Mixer allegedly has super-low-latency streaming (FTL protocol), but new account are cleared manually and I haven't had the chance to try [5] For Windows, you can use OBS Virtualcam https://obsproject.com/forum/resources/obs-virtualcam.539/ https://obsproject.com/forum/resources/obs-virtualcam.539/
- wdfx 7y agoThanks for the info, but I already have all of this part working. The problem is that v4l2loopback only provides a virtual _webcam_ (video source), not a virtual _screen_ - the two are different and are handled differently both by browsers (webrtc) and desktop conference apps (Slack, Teams, etc). I guess the other issue is that conference apps treat webcam and screen capture differently; usually if someone is sharing a screen, then that feed takes over the full view for all participants so they you can actually read the content. I don't want my screen recording only to show up in my _webcam_ view, which is usually just a tiny thumbnail.
- bronco21016 7y agoOBS will handle the screen grabbing. At least on Ubuntu 18.04 I can select individual windows or even the whole screen.
- xyzzy_plugh 7y agoThe parent is pointing out functionality that only pops up for explicit screensharing -- changing your camera to a screen grab won't trigger these. In particular, one I've found very useful with Zoom is being able to zoom in to a small region and scroll around. I also suspect Zoom prioritized resolution (for content clarity) over frame rate for screen sharing, which probably doesn't apply when it's just a "webcam" in the eyes of the client. I'm guessing your window capture would get decimated in terms of quality.