obs2zoom is a script to configure PulseAudio and its Acoustic Echo Cancellation (AEC) features for use with OBS Studio (OBS). obs2zoom should very loosely mimic the functionality of Virtual Audio Cable to route your audio from your Microphone, to OBS, to your preferred video conferencing application like Zoom, Google Meet, Google Duo, WebEx, BlueJeans, and more.
obs2zoom allows you to configure and deconfigure PulseAudio as needed for use with OBS without the need to set "permanent" configurations in /etc/pulse/default.pa or ~/.config/pulse/default.pa.
To run obs2zoom and configure PulseAudio devices
obs2zoom start
To stop obs2zoom and remove the created virtual devices
obs2zoom stop
In OBS, go to File->Settings->Audio->Advanced, and select 'Monitor of OBS monitor sink'.
Next, create a scene, and add the following sources:
- Audio Input Capture (pulseaudio): Name it 'Echo Cancelled Microphone', and select the device with the same name.
- Audio Input Capture (pulseaudio): Name it 'Microphone', and select the physical microphone that you will use for input.
- Audio Output Capture (pulseaudio): Name it 'To OBS', and select the device with the same name.
- Audio Output Capture (pulseaudio): Name it 'To OBS (Monitored)', and select the device with the same name.
Now go to Edit->Advanced Audio Properties, and set the Audio Monitoring like so:
- Echo Cancelled Microphone - Monitor Off
- Microphone - Monitor Only (mute output)
- To OBS - Monitor Off
- To OBS - Monitor and Output
Now all the hard stuff is done. Open whatever VidConf software you are using, and select:
- Microphone -> 'Echo Cancelled Microphone'
- Speakers -> 'Echo Cancelled Speakers'
obs2zoom has been tested on Zoom (duh), Webex, Google Meet, Google Duo, MS Teams, BlueJeans, and Signal Desktop.
If you would like to add filters (like Noise Suppression, or Noise Gate) to your capture device, add them to 'Microphone'.
obs2zoom was written with tips and suggestions from these links:
To use obs2zoom with OBS v26.1.0 or greater utilizing its built-in Virtual Camera functionality, install v4l2loopback.
obs2zoom does not currently support pipewire, as pipewire does not yet have an echo cancelation module.