Skip to main content

Remove backgrounds from video feeds in your web cam applications.

Project description

Background Remover

The Need

It's been good long while since Microsoft first released a Teams version for Linux and yet, one of Teams' coolest features doesn't exist in said Linux version: removable backgrounds. As someone who uses Linux for their daily driver, this annoys me.

Well, I'm an engineer, so of course, I found a solution.

Using OpenCV and a v4l2loopback device (basically a virtual webcam you can write data to), I threw together a Python application that takes your normal webcam input, removes and replaces the background, and outputs that to the created video device. Problem solved :)

Note, this will work anywhere WebCams are used, not just Teams

How to Use

Dependencies: - python >= 3.8 (3.10 is what's supported officially) - pip - v4l2loopback

Setup:

  1. Configure v4l2loopback (may not be necessary):
    • Recommended something like this:
    export DEVICE_ARR=(`ls /sys/devices/virtual/video4linux | tr -d 'video'`); \
    sudo modprobe v4l2loopback \
        devices=1 exclusive_caps=1 video_nr=${DEVICE_ARR[1]} max_buffers=2 \
        card_label=v4l2lo
    
  2. Install with pip install bgrm

Then, you can run:

  • Run with python -m bgrm <options> (use --help to see all options)
  • Example: python -m bgrm -b ~/Pictures/Wallpapers/ni-skyline-wallpaper.png -w 320 -H 240 -s 2.0

Build from Repo

You can also build the package yourself from source (or grab the latest version from the releases tab)

To do that you need the "poetry" build system.

Run poetry build and install the whl from the dist/ folder

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bgrm-8.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bgrm-8-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file bgrm-8.tar.gz.

File metadata

  • Download URL: bgrm-8.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for bgrm-8.tar.gz
Algorithm Hash digest
SHA256 11d68dddd44e88882532f4c5481457cec387a5cca6adb75d7bb5db16f965adf0
MD5 d0e5e37598672c9fab38229bb1e9e7bb
BLAKE2b-256 d5b40334e3545f46c5a6df5336e758167722ab9176ddc603e9068d3d6c1c5011

See more details on using hashes here.

File details

Details for the file bgrm-8-py3-none-any.whl.

File metadata

  • Download URL: bgrm-8-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for bgrm-8-py3-none-any.whl
Algorithm Hash digest
SHA256 b66d5238055d5f7cd27b18ec53f204269fdee8e4f9e3b9a01977d388cd1d7756
MD5 2fdac575f4904d2f272f7281bdc26264
BLAKE2b-256 e06be95551a7cbc710115c8b91d69b6c05fddea74b11985fbc58eaa3f7b2fe2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page