Webcamoid

The ultimate video capture suite!

« Webcamoid blog

Webcamoid 9.4.0 released!

This is a summary of everything that's happened in Webcamoid over the last year of development.

The big one: live streaming to Twitch, YouTube, Kick, and more

This is the most requested feature, and it's finally here. Webcamoid can now stream live directly to streaming platforms using RTMP. This is a big step: Webcamoid stops being "just" a webcam app and starts competing on OBS's turf, with the added advantage of also working on Android.
For now it's single-source (multi-source comes later, see below), but it already includes:

  • Several streaming platforms to choose from, with stream keys and URLs configurable directly from the video outputs.
  • Multi-streaming to more than one destination at once.
  • Automatic stream cutoff when sources are stopped.
  • Stream keys and URLs are hidden on screen while streaming, so they don't get exposed by accident.
  • A slider with presets to pick streaming quality, and an equivalent one for recording quality.

Local Streaming: an alternative to the virtual camera

Alongside platform streaming, Local Streaming was added: streaming video and audio over HTTP on localhost, so any browser or player (VLC, for example) can connect directly to Webcamoid without going through a virtual camera driver.
It turned out to be so stable that it ended up replacing the virtual camera on some systems:

  • macOS: the virtual camera was removed entirely. It was poorly maintained, unstable, and likely no longer worked well on recent versions of the OS. Local Streaming is more stable and also supports audio and video together, something the macOS virtual camera never managed to do well.
  • Windows: the virtual camera still exists, but Local Streaming is now the recommended option instead.

The road to get there: porting effects to OpenGL

To support multiple sources on screen at once (OBS-style), effect processing first had to move off the CPU and onto the GPU. 20 effects have already been ported to OpenGL:

  • Aging
  • AnalogTV
  • Cartoon
  • Charify
  • Cinema
  • Dice
  • Edge
  • Emboss
  • FaceTrack
  • Fire
  • GrayScale
  • Hypnotic
  • Invert
  • Matrix
  • Otsu
  • Pixelate
  • Radiactive
  • Swirl
  • Vignette
  • Warhol

Several more are still left, but this is the groundwork everything else builds on.

A friendlier interface, especially on phones

The interface was redesigned to work well on small screens:

  • Camera controls are much more usable on smaller screens.
  • The preferences menu is now shown full-screen instead of side by side, with each section accessed separately.

Webcamoid also now has full translation coverage in 68 languages, combining the existing Weblate infrastructure with AI-assisted translation.

Also added:

  • Single-instance mode (only one Webcamoid can run at a time).
  • Option to hide UI controls when the mouse cursor leaves the window.
  • Capture of individual windows, not just the entire screen.
  • Screen devices are no longer added automatically as a source, avoiding confusion when no camera is detected.
  • Screen capture support on wlroots-based Wayland compositors (Sway, Hyprland, etc.), using the wlr-screencopy protocol.

Virtual camera: improvements across every platform

  • akvcam: added direct mode support, sending frames straight to the client, plus improved format conversion.
  • Fixed errors when creating the virtual camera and default picture settings on Windows and macOS.
  • As mentioned above, on macOS the virtual camera was retired in favor of Local Streaming.

Audio: a full rewrite

How Webcamoid handles audio was rewritten from the ground up:

  • JACK, SDL, and Qt Audio were removed as dependencies (they were complex to maintain and didn't work very well).
  • You can now combine multiple audio inputs at once, each with its own volume control.
  • A volume control was added to the audio output.
  • Fixed a bug on GNU/Linux that prevented playing the video's audio while capturing from the microphone at the same time (for example, with headsets that have a built-in mic).
  • PulseAudio can now be loaded dynamically, improving portability across distros.

Build system

GNU/Linux packages are now built using Homebrew on top of Ubuntu 24.04, instead of depending on Debian Bookworm's specific libraries. The goal is better compatibility across distros in general (Linux Mint was one of the problem cases that motivated this change).

Heading toward an official Android release

Webcamoid now works correctly on Android 16, and several screen-capture issues on Android were fixed. The official Google Play launch is close, and testers are still needed to try out the Android version before release.

What's next

  • Finish porting the remaining effects to OpenGL/Vulkan.
  • Once that foundation is ready, implement multi-source scene mode.
  • Revisit avatars and virtual backgrounds when there's room for them.
  • Keep moving toward the official Android release.

Thanks

Thanks to all the sponsors, and to everyone testing development builds and reporting bugs. Every bug report helps these features reach everyone in a more stable state. ❤️