NV Broadcast
for Linux & macOS

Open-source AI camera and microphone effects: background removal, blur and replacement, auto framing, eye contact, noise removal, recording, and local meeting transcription.

Terminal
$

Look professional. Sound professional.

Works with Zoom, Chrome, OBS, Discord, FaceTime. One app does it all.

Blur your background

3 AI models. Real-time.

Sound like a studio

Bass, warmth, compression. GPU.

AI writes your notes

Whisper + summarizer. Local.

Background Removal

Blur, replace, or remove. Three AI models to choose from.

Eye Contact

Natural correction or Gaze Lock while reading your screen.

Face Relighting

Auto-match your face lighting to the background.

Video Enhancement

Skin smooth, denoise, sharpen. Four beauty presets.

Auto-Frame

AI keeps you centered when you move around.

Virtual Camera

Shows up in Zoom, Chrome, OBS, Discord automatically.

Voice Studio

Bass, treble, warmth, compression. 6 presets. GPU-accelerated.

Noise Removal

AI removes background noise from your mic in real-time.

Mic Test + VU Meter

Record 5 seconds, play it back. See your live audio level.

AI Meeting Notes

Whisper transcribes. AI extracts action items. 100% local.

Recording + NVENC

Record video + audio to MP4. Hardware encoding. One click.

GTK4 + Adwaita, built for Linux

Dark-themed native interface with resizable preview, real-time controls, and status monitoring.

NV Broadcast
REC
ZEUS MODE
33 fps
Processing
Zeus (480p + CuPy)
Camera
EMEET SmartCam S600
Resolution
1920 x 1080 @ 30fps
Background
Blur (Strength: 70%)
Broadcasting to /dev/video10
GPU: RTX 3080 | VRAM: 1.2 GB

Camera to virtual output in milliseconds

GStreamer captures, ONNX Runtime infers, CuPy composites, v4l2loopback outputs.

Camera
MJPEG capture
→
GStreamer
Decode + appsink
→
AI Inference
ONNX + CUDA
→
Composite
Fused CUDA kernel
→
Virtual Cam
v4l2loopback

9 modes, from killer to potato

Real benchmark numbers at 1080p. 5 built-in profiles (Meeting, Streaming, Presentation, Gaming, Clean) plus custom profiles.

CUDA Max
720p Quality
22
fps @ 1080p
45 ms frame time
Full resolution inference
GPU
CUDA Balanced
720p skip 2
34
fps @ 1080p
29 ms avg
67% effects ratio
GPU
CUDA Perf
720p skip 2
33
fps @ 1080p
30 ms avg
50% effects ratio
GPU
CPU Quality
CPU provider
Varies
by hardware
True CPU inference
Highest CPU cost
CPU
CPU Light
CPU provider
Varies
by hardware
Reduced CPU cost
Lower edge quality
CPU
CPU Low End
CPU provider
Varies
by hardware
Maximum frame reuse
Lowest CPU cost
CPU

One command, any distro

Detecting your system...
bash
$ git clone https://github.com/Hkshoonya/nvidia-broadcast-linux.git
$ cd nvidia-broadcast-linux
$ ./install.sh

Works on all distros. The installer auto-detects your package manager and installs dependencies. Re-running `./install.sh` upgrades the existing install in place.

bash
# Download and verify v1.5.4
$ (
set -euo pipefail
WORKDIR=$(mktemp -d)
cd "$WORKDIR"
$ BASE=https://github.com/Hkshoonya/nvidia-broadcast-linux/releases/download/v1.5.4
$ PACKAGE=nvbroadcast_1.5.4-1_all.deb
$ wget --https-only "$BASE/$PACKAGE" "$BASE/nvbroadcast-native-upgrade" "$BASE/SHA256SUMS.packages"
$ awk -v package="$PACKAGE" '$2 == package || $2 == "nvbroadcast-native-upgrade" { print; found++ } END { exit found != 2 }' SHA256SUMS.packages | sha256sum -c -
$ chmod 755 nvbroadcast-native-upgrade
# Protected upgrade when installed; normal package-manager path when clean
$ if dpkg-query -W -f='${db:Status-Abbrev}' nvbroadcast 2>/dev/null | grep -q '^i'; then sudo ./nvbroadcast-native-upgrade "./$PACKAGE"; else sudo apt-get install --yes --no-remove "./$PACKAGE"; fi
)

For Ubuntu, Debian, Pop!_OS, Linux Mint, and derivatives. The commands above verify both downloads and automatically protect native v1.4.0-and-older upgrades with the release-bound helper. Read the verification details

bash
# Download and verify v1.5.4
$ (
set -euo pipefail
WORKDIR=$(mktemp -d)
cd "$WORKDIR"
$ BASE=https://github.com/Hkshoonya/nvidia-broadcast-linux/releases/download/v1.5.4
$ PACKAGE=nvbroadcast-1.5.4-1.noarch.rpm
$ wget --https-only "$BASE/$PACKAGE" "$BASE/nvbroadcast-native-upgrade" "$BASE/SHA256SUMS.packages"
$ awk -v package="$PACKAGE" '$2 == package || $2 == "nvbroadcast-native-upgrade" { print; found++ } END { exit found != 2 }' SHA256SUMS.packages | sha256sum -c -
$ chmod 755 nvbroadcast-native-upgrade
# Protected upgrade when installed; normal package-manager path when clean
$ if rpm -q nvbroadcast >/dev/null 2>&1; then sudo ./nvbroadcast-native-upgrade "./$PACKAGE"; else sudo dnf install --assumeyes "./$PACKAGE"; fi
)

For Fedora, RHEL, CentOS, and Rocky. The commands above verify both downloads and automatically protect native v1.4.0-and-older upgrades with the release-bound helper. Read the verification details

bash
# Snap Store (released separately after validation)
$ sudo snap install nvbroadcast
$ sudo snap refresh nvbroadcast

For systems with Snap support. Snap Store updates are released separately after artifact inspection, provenance verification, Store review, and candidate testing. Check the Store channel version; snap refresh nvbroadcast upgrades to the current stable revision in place. The arm64 Snap remains CPU-only.

bash
# Install system deps then run the installer
$ sudo pacman -S python gtk4 libadwaita gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad v4l-utils
$ git clone https://github.com/Hkshoonya/nvidia-broadcast-linux.git && cd nvidia-broadcast-linux && ./install.sh

For Arch, Manjaro, EndeavourOS. Arch wiki: v4l2loopback

zsh
Signed v1.5.4 PKG
$ (
$ set -euo pipefail
$ INSTALL_DIR=$(mktemp -d)
$ cd "$INSTALL_DIR"
$ BASE=https://github.com/Hkshoonya/nvidia-broadcast-linux/releases/download/v1.5.4
$ PACKAGE=NVBroadcast-1.5.4-1.pkg
$ curl --fail --location --proto '=https' --proto-redir '=https' --remote-name "$BASE/$PACKAGE"
$ printf '%s %s\n' 'f0fb2bec7035a5ec336168ab0523ffeebec5d5d9cf5fd0d526c4c37936aa2b6f' "$PACKAGE" | shasum -a 256 -c -
$ pkgutil --check-signature "$PACKAGE"
$ xcrun stapler validate "$PACKAGE"
$ spctl --assess --type install --verbose=4 "$PACKAGE"
$ open "$PACKAGE"
$ )

Download the signed macOS PKG for Apple Silicon macOS 15+. Its Developer ID Installer identity is WeMakeSense LLC (T39RXSKKZ6); notarization and a stapled ticket are verified. The commands above check the exact package checksum, signing identity and Gatekeeper before opening Installer. Package checksums · Build provenance.
Finish Installer, then run the setup below as your regular user. Install Apple Silicon Homebrew at /opt/homebrew first. Runtime setup requires network access and compatible Python 3.11-3.13 bindings; do not run Homebrew, setup or Broadcast with sudo.

zsh
After Installer
$ /opt/homebrew/bin/brew update &&
$ /opt/homebrew/bin/brew install [email protected] pygobject3 gtk4 libadwaita gstreamer pkgconf ninja &&
$ /opt/homebrew/bin/brew upgrade [email protected] &&
$ /opt/nvbroadcast/scripts/setup_macos_runtime.sh &&
$ /usr/local/bin/nvbroadcast

Use /usr/local/bin/nvbroadcast so an older source launcher cannot shadow the package. CPU processing is supported; CoreML acceleration is not qualified. OBS Studio provides virtual-camera output: open it once, start and stop Virtual Camera, then close OBS. The proprietary Camera Extension prototype is not installed by this PKG.
Microphone recording, Mic Test and microphone-only Meeting are supported; system-audio loopback and processed virtual-microphone output are unavailable on macOS. Package setup and acceptance details. Intel macOS and Homebrew runtime setup on macOS 13/14 remain unsupported. Existing source installations remain separate; see the source installation instructions.

Linux

  • Any distro (Ubuntu, Fedora, Arch, Pop!_OS...)
  • NVIDIA GTX 1060+ for GPU modes
  • Python 3.11+, GStreamer, GTK4
  • PipeWire for virtual mic

macOS

  • macOS 15 Sequoia or newer for supported Homebrew setup
  • Apple Silicon (M1+) required
  • Apple Silicon Homebrew at /opt/homebrew; Python 3.11-3.13 with compatible bindings
  • OBS Studio for virtual-camera output
  • CPU modes (no NVIDIA needed)

Camera + Audio

  • USB webcam, 720p+ recommended
  • Any microphone (USB, built-in)
  • 360p to 4K supported

Support continued development

If you like NV Broadcast and want to help me keep building at this pace, feel free to sponsor my work. Your support gives me more time to improve effects and performance, resolve difficult bugs, and test releases across real systems. Support is optional, and core features remain open source.