Echo cancellation in video conferencing system
Eliminating echo during screen sharing and system audio transmission in WebRTC-based video conferences using Electron on Windows.
Tasks
- Investigate the cause of echo during screen sharing and system audio transmission.
- Find methods to enable echo cancellation (echoCancellation) in Electron’s limited getUserMedia() implementation.
- Develop a patch to modify the Electron executable without rebuilding.
- Create a Node.js utility for automatically applying the patch.
- Integrate the solution into the product’s CI/CD pipeline.

About the Project
During video conferences with screen sharing and system audio in Electron-based applications on Windows, a critical issue arose: participants heard an echo of their own voice. This occurred because Electron disabled the audio processing module (including echo cancellation) during screen sharing to save CPU resources.
The issue was traced to Electron’s implementation: during screen capture, audio stream processing was automatically disabled, despite the presence of an echo cancellation attribute in the stream.
The solution was implemented without rebuilding Chromium/Electron and integrated into the product’s build process.
Results

Limitations in Electron Implementation
Electron disabled audio processing during screen sharing, even when the echoCancellation parameter was explicitly set. The reason—Chromium’s source code disables the echo cancellation module for "desktop" type streams.
- Modification Without Rebuilding
- Solution—created a binary patch that directly modifies the Electron executable. This avoided the need for rebuilding.
- Flexible Utility Architecture
- The utility is based on signature searching rather than fixed offsets, allowing adaptation to different Electron versions without manual edits.
Details of the Implementation
Instead of rebuilding Electron from source—a resource-intensive and unstable process—
we opted to modify the pre-built Electron .exe
file.
A specialized Node.js utility was developed to:
- Locate the signature of the disabling code in the binary file.
- Apply changes to enable
echoCancellation
. - Support multiple Electron versions through signature-based abstraction.
This enabled echoCancellation during screen sharing, eliminating the echo source and improving call quality without the overhead of rebuilding the browser.
Related Services
Ready to discuss your project?
Describe your task, we will make a research and respond to you as soon as possible.