[Closed - known bug in pipewire] Zoom with pipewire - can't share computer audio

Whether I am using vlc or any media with audio, when I share computer audio in zoom it doesn’t work. The zoom says it’s sharing computer audio but there is no sound. Mic works fine. All apps are latest versions. Any info I can send that might help anyone point me in the right direction?

I’m not a Zoom user, so not of much help here.

But one thing to confirm is whether Zoom supports sharing desktop audio on screen share on Linux or not? For example, Discord shares desktop audio on Windows, but not on Linux. I hope Zoom doesn’t have a similar scenario.

inxi -Faz would be a good start. :wink:

If you’re using Wayland then you may need to make sure you have a suitable “portal” package installed: https://wiki.archlinux.org/title/PipeWire#WebRTC_screen_sharing

@flyingcakes Zoom is supposed to allow it
@jonathon Here it is. fwiw, I am 90% sure it worked before pipewire

System: Kernel: 5.10.82-1-lts x86_64 bits: 64 compiler: gcc v: 11.1.0
parameters: BOOT_IMAGE=/boot/vmlinuz-linux-lts
root=UUID=c0cc1776-fade-4317-9a52-41d3320d7242 rw net.ifnames=0 ipv6.disable=1
Desktop: KDE Plasma 5.23.3 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM
Distro: Arch Linux
Machine: Type: Laptop System: Acer product: Aspire A515-54G v: V1.17 serial:
Mobo: CML model: Doc_WC v: V1.17 serial: UEFI: Insyde v: 1.17 date: 01/21/2020
Battery: ID-1: BAT1 charge: 36.2 Wh (97.8%) condition: 37.0/48.9 Wh (75.6%) volts: 15.8 min: 15.2
model: LGC AC14B8K type: Li-ion serial: status: Discharging
CPU: Info: Quad Core model: Intel Core i5-10210U bits: 64 type: MT MCP arch: Kaby Lake
note: check family: 6 model-id: 8E (142) stepping: C (12) microcode: EA cache: L2: 6 MiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 33599
Speed: 600 MHz min/max: 400/4200 MHz Core speeds (MHz): 1: 600 2: 600 3: 600 4: 600 5: 600
6: 601 7: 600 8: 600
Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB filling
Type: srbds mitigation: TSX disabled
Type: tsx_async_abort status: Not affected
Graphics: Device-1: Intel CometLake-U GT2 [UHD Graphics] vendor: Acer Incorporated ALI driver: i915
v: kernel bus-ID: 00:02.0 chip-ID: 8086:9b41 class-ID: 0300
Device-2: NVIDIA GP108M [GeForce MX250] vendor: Acer Incorporated ALI driver: N/A
alternate: nouveau bus-ID: 02:00.0 chip-ID: 10de:1d13 class-ID: 0302
Device-3: Chicony HD User Facing type: USB driver: uvcvideo bus-ID: 1-5:4 chip-ID: 04f2:b64f
class-ID: 0e02 serial:
Display: x11 server: X.Org 1.21.1.1 compositor: kwin_x11 driver: loaded: intel
unloaded: fbdev,modesetting,vesa display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") s-diag: 582mm (22.9")
Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 143 size: 340x190mm (13.4x7.5")
diag: 389mm (15.3")
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio: Device-1: Intel Comet Lake PCH-LP cAVS vendor: Acer Incorporated ALI driver: snd_hda_intel
v: kernel alternate: snd_soc_skl,snd_sof_pci bus-ID: 00:1f.3 chip-ID: 8086:02c8
class-ID: 0403
Sound Server-1: ALSA v: k5.10.82-1-lts running: yes
Sound Server-2: JACK v: 1.9.19 running: no
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.40 running: yes
Network: Device-1: Intel Comet Lake PCH-LP CNVi WiFi driver: iwlwifi v: kernel bus-ID: 00:14.3
chip-ID: 8086:02f0 class-ID: 0280
IF: wlan0 state: up mac:
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Acer Incorporated ALI driver: r8169 v: kernel port: 3000 bus-ID: 03:00.0
chip-ID: 10ec:8168 class-ID: 0200
IF: eth0 state: down mac:
Bluetooth: Device-1: Intel AX201 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-10:6
chip-ID: 8087:0026 class-ID: e001
Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends
Drives: Local Storage: total: 476.94 GiB used: 62.91 GiB (13.2%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFM512GDJTNG-8310A
size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 15.8 Gb/s lanes: 2
type: SSD serial: rev: 80002C00 temp: 23.9 C scheme: GPT
Partition: ID-1: / raw-size: 150.09 GiB size: 147.23 GiB (98.10%) used: 62.84 GiB (42.7%) fs: ext4
dev: /dev/nvme0n1p4 maj-min: 259:4
ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%) used: 72.5 MiB (75.5%) fs: vfat
dev: /dev/nvme0n1p1 maj-min: 259:1
Swap: Alert: No swap data was found.
Sensors: System Temperatures: cpu: 41.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info: Processes: 283 Uptime: 7h 35m wakeups: 2 Memory: 7.49 GiB used: 2.5 GiB (33.4%)
Init: systemd v: 249 tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: apt: 0
pacman: 1498 lib: 330 flatpak: 0 Shell: Bash v: 5.1.12 running-in: konsole inxi: 3.3.07

Is there a way of going back to pulseaudio? I tried to install it and remove pipewire and it wanted to remove almost everything.

I think PipeWire should allow this, but from a related thread you could try helvum,

Helvum has no documentation whatsoever…

It doesn’t need it - you literally drag&drop the connections between sources and sinks.

Sorry to be extremely thick. This is what I am basically trying to achieve
Yeti Mic to Zoom Input
VLC to Zoom Input
VLC to PC headphone (HDA)
Zoom output to headphone (HDA)


The problem is it doesn’t stick. As soon as I select the next track in the playlist, this is what happens

1 Like

Righty. It looks like Helvum itself is limited to what PipeWire provides.

There’s an open feature request for persistent settings:

But, with the current implementation the approach might be to add a virtual sink, set that as the default output for VLC, and then hook that into Zoom:

From feature request virtual audio sinks
pactl load-module module-null-sink sink_name=Virtual-Speaker
set VLC output to virtual

Does that get it to stick between track changes?

(Also 0.3.2 was just pushed to community which adds better colours for connections)

It does! But the sound quality is absolutely shite

1 Like

the audio might be being remixed or something

have you done any tinkering with your pipewire settings? If you need a persistent loopback or null sink you can do it in the pipewire config files. I need to do it for my audio interface ins/outs to be properly separated as theyre not on default.

The pipewire wiki is pretty detailed on how to do a lot of things

EDIT: Here is how you would make a persistent null-sink in the config files


   {   factory = adapter
        args = {
           factory.name     = support.null-audio-sink
           node.name        = "my-sink"
           media.class      = Audio/Sink
           object.linger    = true
           audio.position   = [ FL FR ]
        }
    }

to avoid remix you need stream.dont-remix = true but im not 100% on if this should be in the null sink or not. Im a little fuzzy on making the connection for Zoom persistent, but im assuming it would be similar to this

{   name = libpipewire-module-loopback
        args = {
            node.name = "CM106_stereo_pair_1"
            node.description = "CM106 Stereo Pair 1"
            capture.props = {
                media.class = "Audio/Sink"
                audio.position = [ FL FR ]
            }
            playback.props = {
                audio.position = [ FL FR ]
                node.target = "alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }

which is how i create the loopback for my output/input but you would probably need to have it directed to the null-sink or something. Im no expert but its a place to start i suppose

Thanks for the pointers - I’ll take a break and have another go tomorrow!

1 Like

NP

You can definitely do this is a persistent way without helvum to do it every time im just not completely sure on the exact setup. Youll have to tinker with it a bit or check if there is an open issue on Zoom that can direct you properly.

Hi there. I haven’t done any tinkering. One thing is that zoom for linux does not have the advanced audio settings that zoom for windows does - it always sees the input as a mic I think. I don’t think any amount of plumbing will help with that. Ages ago I put in a bug report/feature request but as of yet nothing has been done to allow ‘original sound’ and disable the advanced audio processing. Windows and Mac only!

“audio-enhancing features” my arse!

1 Like

I have uninstalled pipewire and reinstalled pulseaudio. Now shares screen/audio fine. No plumbing required. This solves my original issue. Marking as solved. Open ticket on pipewire for several months.
Thanks for your efforts.

1 Like