Recording True Stereo Audio Using getUserMedia

Firefox supports 2 channel audio in video recordings since Firefox 55 and introduced support for the channelCount constraints in Firefox 56. Chrome supports channelCount since Chrome 63. We've covered these changes in more detail back in 2017 in our audio constraints in getUserMedia article.

We've recently revisited the space.

Using Chrome and Firefox + compatible hardware (with 2, dual, or stereo mics), you can get 2-channel audio.

In our office we quickly managed to get 2-channel audio using:

  • Logitech C920 webcam
  • Logitech C925E webcam
  • OBSBOT Meet 2 webcam
  • A 2017 15 inch MacBook PRO's built in microphones
  • A 2017 12 inch MacBook's built in microphones

Notably, all our M1, M2, M3 MacBook PROs had 1 channel output.

In macOS it is easy to determine wether or not a device supports mono or 2 channel audio. Open the built-in Audio MIDI Setup app and look for the input channels.

The built-in Audio MIDI Setup app on macOS showing 2 channel microphone input on a 12 inch MacBook from 2017

However, only some of the above hardware is capable of true stereo - 2 different audio signals. The rest produces a duplicate mono channel. We were able to get true stereo audio with Chrome from the Logitech C925E, while using OBSBOT Meet 2 produced the same mono channel twice.

Here's how 2 truly different audio channels look in the rather technical Lossless Cut video player. These 2 channels were created by moving around the Logitech C925E while recording.

To get true stereo audio, we also had to disable any audio processing (noise reduction, level adjustment, echo cancellation). More specifically, we set the noiseSuppressionechoCancellation, and autoGainControl audio constraints to false when calling getUserMedia(). When using the Pipe Recording Client to capture video, you can now specify custom constraints.

Safari only supports 1 channel audio for now. There's a WebKit bug open where you can follow a future implementation.

getUserMedia() Audio Constraints
Control audio input settings using getUserMedia constraints. Adjust echo cancellation, noise suppression, and more to optimize audio quality.
Recording True Stereo Audio Using getUserMedia
Share this
IT TAKES 1 MINUTE
Sign up for a 14 Day Trial

With our 14 days (336 hours) trial you can add audio, video and screen + camera recording to your website today and explore Pipe for 2 weeks