AI virtual camera for Linux with real-time background replacement
Runs on AMD Radeon (ROCm) · drops straight into OBS / Zoom / Google Meet / Discord
ProVCam is an AI virtual camera for Linux that provides real-time background replacement, blur, green screen, and webcam output through v4l2loopback. It is designed for Wayland and X11 desktops, ships as AppImage builds, and works with OBS, Zoom, Google Meet, Discord, and other webcam-enabled apps.
linux · virtual-camera · webcam · v4l2loopback · background-replacement · ai-background-removal · rocm · amd · appimage · obs · zoom · wayland · python · rust · video
provcam-demo-720p.mp4
Two editions ship side-by-side. Pick one, make it executable, run it.
| Edition | File | Size | Backend | When to pick |
|---|---|---|---|---|
| Rust (recommended) | ProVCam-Rust-x86_64.AppImage |
~1.1 MB | Rust inference + Python fallback | Faster startup, lower RAM, single binary |
| Python | ProVCam-Python-x86_64.AppImage |
~230 KB | Pure Python / PyTorch | Easier to modify and extend |
# Rust edition (recommended)
chmod +x ProVCam-Rust-x86_64.AppImage
./ProVCam-Rust-x86_64.AppImageFirst run copies the payload to ~/.local/share/provcam/ and opens the installer (creates the .venv, installs PyTorch ROCm, pre-caches the AI model). Later runs go straight to the GUI.
ProVCam takes your physical webcam (or a phone camera via Iriun), runs RobustVideoMatting to remove the background, composites the foreground onto a blurred / green / black / custom image, and pipes the result into a v4l2loopback device that any Linux app can treat as a regular webcam.
Built for AMD Radeon cards where ONNX Runtime's ROCm support is missing. Falls back to CPU when ROCm isn't available.
- 🎭 AI background removal — RVM models, cached for offline use
- 🖼 Background modes: blur, custom image, green, black
- 🎚 Matte profiles:
clean,balanced,soft - ⚡ AMD GPU acceleration via PyTorch ROCm (FP16 when supported)
- 🛡 Supervisor with automatic fps/resolution downgrade on failures
- 🧩 Zero-copy IPC (
mmapseqlock) between capture / inference / output processes - 🖱 CustomTkinter GUI with live preview
- 📦 Self-contained AppImage — no manual install required
-
Linux with Wayland or X11
-
AMD Radeon GPU with ROCm support (or any GPU for CPU fallback)
-
v4l2loopbackkernel module — the first-run installer sets it up for you -
Python 3.9+
-
tk— Tkinter runtime for the GUI. Install once:# Arch / Manjaro yay -S tk # or: sudo pacman -S tk # Debian / Ubuntu sudo apt install python3-tk # Fedora sudo dnf install python3-tkinter
All other Python dependencies (PyTorch ROCm, OpenCV, CustomTkinter, numpy) are installed automatically into the app's own venv on first run.
The installer covers the common cases (venv, PyTorch ROCm, v4l2loopback, Iriun autostart). If something goes wrong:
- No
ProVCam Outputin Zoom/OBS —v4l2loopbackisn't loaded. Runsetup_boot_autostart.shfrom~/.local/share/provcam/app/once. - Permission denied on
/dev/video2— add your user to thevideogroup:sudo usermod -aG video "$USER"(log out & back in). - GPU not detected — verify
rocminfoshows your GPU; reinstall the matching PyTorch ROCm wheel.
Logs live at ~/.cache/provcam/provcam_gpu.log.
This repository ships the prebuilt AppImages only. The source tree (Python backend, shell launchers, Rust inference crate, build scripts) lives at ~/.local/share/provcam/app/ on any machine that has run the AppImage once — it's self-extracting. From there:
cd ~/.local/share/provcam/app
./build_appimage.sh # rebuild your own AppImage
pytest tests/ # run the test suite- YouTube tutorials and Linux desktop videos: @linuxlifex
- GitHub profile: ekremx25
MIT — do what you want, just don't claim warranty.