I'm building a video conferencing app using Electron (version 10, Chrome v75) and WebRTC. The app has multiple windows, and in each window, I have a separate RTCPeerConnection with a different app user. The problem is that if I don't use headphones, there is a strong echo that makes the app almost unusable.
I tried setting all sorts of getUserMedia
options like echoCancellation: true
or googEchoCancellation: true
, echoCancellationType: "browser"/"system"
, but none of them managed to cancel out the echo from various sound sources.
This problem appears only on Mac and Linux, while Windows suppresses the echo quite efficiently.
I found this Chromium issue that describes a similar problem in more detail.
Also, when I try out this Fiddle on Chrome + Mac or Linux (although Chrome is not perfect for this very case, find more details here), I see no effects of echo cancellation and the echo is still there. However, the same thing on Chrome + Windows or Firefox + any OS works perfectly.
Can it really be that AEC (echo cancellation) within Chrome does not take into account all sound sources, and does anyone know a workaround?