19

I have installed the Zoom Desktop Client for Linux on Ubuntu 18.04.
I would like to use the Virtual Background feature, but I do not know how to activate it.

My Zoom Linux Client Version is 3.5.385850.0413 and my laptop also meet the processor requirements (Dual Core 2Ghz or Higher (i5/i7 or AMD equivalent) processor)
Virtual Background – Zoom Help Center

Edit for clarification: I know this Zoom feature only works on Linux with a physical green screen. At the moment I do not get any message that I should put a green scree, I do not have that option at all. So even having a green screen I would not be able to use this feature.

1
  • 1
    sergiouribe's answer is correct, but i would add that for some reason launching zoom from the web gives you less options even if you are logged into your zoom account when you launched your meeting. the profile tab and 1 or 2 others also go missing. i think what is happening is that the credentials are not being completely or correctly transferred to the desktop app. if you launched from the web, you have to leave the meeting or sign out, then while still in the desktop app, explicitly log in to your account from the sign in dialog. you can also launch the desktop app directly and then sign – will_ May 14 '20 at 22:13
23

As of writing this, Zoom does not support person/face-detection based virtual background in their Linux-version software. The solution below helps achieve the similar effect, and since it creates a virtual webcam, you can most likely use this solution for any apps that use a webcam, for example, Microsoft Teams. These instructions were originally posted by @BenTheElder, and IMO is a super fun and neat project, especially if you are into computer vision. https://elder.dev/posts/open-source-virtual-background/

What the code is doing essentially is grabbing image frames with Python and OpenCV. For each image, the face/body is cropped using TensorFlow.js Bodypix, and merged with the specified background. The modified images are then used to create the video feed via pyfakewebcam and v4l2loopback. I have tested the below instructions with Ubuntu 20.04, code used is archived in https://github.com/pangyuteng/virtual-background

branch master requires GPU, while branch cpu-friendly uses only CPU.

EDIT: after getting the below to work, I also found out there is a more refined version by fangfufu https://github.com/fangfufu/Linux-Fake-Background-Webcam which is also based on @BenTheElder's solution.

--

docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
  • install and setup virtual video device as "/dev/video20", and assuming the actual video device is "/dev/video0"
sudo apt-get upgrade -y
sudo apt-get install -y v4l2loopback-dkms v4l2loopback-utils

sudo modprobe -r v4l2loopback
sudo modprobe v4l2loopback devices=1 video_nr=20 card_label="v4l2loopback" exclusive_caps=1
  • add root to group video (likely unecessary...)
sudo usermod -aG video root
cat /etc/group | grep video
  • clone repo
git clone git@github.com:pangyuteng/virtual-background.git vbkgd
cd vbkgd
  • (for those using CPU) switch branch.
git checkout cpu-friendly
  • build containers
docker-compose build
  • (optional) adjust camera resolution and fps in docker-compose.yml
  • start the virtual camera via docker-compose (assuming physical video device at /dev/video0, virtual video device at /dev/video20 and gpu at /dev/nvidia0)
docker-compose up
  • launch zoom/teams/slack..., select v4l2loopback as webcam

  • live swap background by replacing file data/background.jpg - refresh rate hard coded at 3 seconds.

11
  • bodypix just died for me (Ubuntu 20.04) with a segfault. how do i go abt debugging it? – redDevil Oct 22 '20 at 13:26
  • @redDevil i initially want to say it could be memory issue, but if you have a modern gpu, likely bodypix would not crash due to out of memory error (RAM or GPU Ram). Maybe try rebooting, and feeding in bodypix one frame at a time to see if the bodypix container is functioning as expected. – pangyuteng Oct 23 '20 at 4:18
  • 2
    i have an nvidia geforce gt 710. This, however, worked fine in my other system with intel integrated graphics and on the cpu-friendly branch. Only had to change this +opencv-python==4.3.0.38 – redDevil Oct 24 '20 at 9:12
  • I get an error, despite nividia-docker being installed and verified: ERROR: for vbkgd_bodypix_1 Cannot create container for service bodypix: Unknown runtime specified nvidia – Sephethus Dec 2 '20 at 16:36
  • 2
    I actually tried the other "refined" solution you linked which I got running but came across numerous other problems with it once I tried connecting zoom to it, like, it wouldn't access the camera so it was just a whitehouse press conference background. Also I got an error from your above suggestion, it wants CUDA 11 or greater, not sure how I get that onto Ubuntu 20.04. Yet if I type nvidia-smi it says I have "NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0" – Sephethus Dec 3 '20 at 18:59
10

You have to go to: Settings > General > View Advanced Features > (the web site will open. log in) > Settings > In Meeting (advanced) > Enable Virtual Background.

For some reason, it is disabled by default in Ubuntu Zoom Client, and behave differently.

enter image description here

Then. in the Linux Client go to Settings and you will see a new submenu: Virtual Background

enter image description here

In previous versions (<5) a green background was required, it is no longer necessary and only a single colour background is needed, preferably green.

Hope this help.

2
  • 1
    This was not present for me in 5.1, but was after upgrading to 5.4 – Ben McCann Nov 18 '20 at 21:22
  • This isn't the question.... – Sephethus Dec 2 '20 at 16:34
6

As others have pointed out already, virtual background without green screen is not yet supported by zoom for Linux. There is a feature request for this in the zoom developer forum. Maybe supporting it can help making this feature a priority:

https://devforum.zoom.us/t/request-implement-virtual-backgrounds-in-linux/41558

4

According to the Zoom website, you need to have a physical green screen to have virtual backgrounds on Ubuntu:

Linux Requirements

  • Zoom Desktop Client for Linux, version 2.0.91373.0502 or higher
  • Dual Core 2Ghz or Higher (i5/i7 or AMD equivalent) processor
  • A physical green screen
3
  • Please explain what you mean by "A physical green screen" ? – Soren A Apr 20 '20 at 21:04
  • Thanks for your answer! Unfortunately this not solve the issue as at the moment I do not get any message that I should put a green screen, I do not have that option at all. So even having a physical green screen I would not be able to use this feature. – Mil Apr 22 '20 at 20:09
  • 4
    Yeah, the Windows Zoom client uses image analysis to do background replacement. However, their Linux client can only do chroma-key replacement, which means that you'll get terrible results unless you use a greenscreen. If you have an Nvidia card, you might be able to hack together a proper background replacement using open-source tools, as detailed here: elder.dev/posts/open-source-virtual-background. I couldn't get it working myself though, but it's interesting that it's possible. Perhaps Zoom will add this feature to the Linux client in future. – Scaine May 14 '20 at 9:45
1

With zoom 5.5.2 from this snap, on Ubuntu 20.04.2 LTS, virtual background without green screen actually works. It even works rather well.

Well, that might have had to do with a particular light that particular day… I'm back to virtual background not working well

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.