If you are trying to mirror your Android device to a Windows computer and have perfected video quality but can't figure out how to get nice-sounding audio at the same time. This article will show you a few different things you can do to fine-tune audio in SCRCPY so that it's free from any distortion, robotic, choppy, or low-quality sounds. The problem is usually connected to the default audio capture, buffering, codec compatibility, or bitrate settings in scrcpy.

Takeaways:

  1. How do you fix audio in SCRCPY when screen mirroring?
  2. What are the best audio settings to use in SCRCPY?

Check Android Version Compatibility

Audio forwarding in scrcpy depends on your Android version, older versions of Android do not support audio forwarding.

  • Android 12 and newer: Audio forwarding works automatically.
  • Android 11: Audio forwarding is supported, but the device must be unlocked when scrcpy starts. A temporary popup appears to allow audio capture.
  • Android 10 and earlier: Audio capture is not supported.

Quick Fixes to Try First

Before you deep dive into this problem, here are a few commands you can use that should solve this problem. If you aren't sure how to use commands or how to make shortcuts for commands, check out the two guides below.

How to use SCRCPY Command Prompt Shortcuts.
How to create SCRCPY Batch file shortcuts to run multiple commands.

Increase Buffering: scrcpy --audio-buffer=100

Switch to AAC: scrcpy --audio-codec=aac

Increase Bit Rate: scrcpy --audio-bit-rate=256K

Combine All Three: scrcpy --audio-codec=aac --audio-buffer=100 --audio-bit-rate=256K

How to Fix Poor Audio Quality When Mirroring Your Android Phone to a PC with SCRCPY

If the quick fixes aren't working for you, you can work your way through some of the more in-depth options available. However, as with the previous options, you will still need to use Command Prompt, so it doesn't get any easier.

Try a Different Audio Codec

Some devices have issues with the default Opus encoder.

If you experience distorted audio or encoder errors, try switching codecs:

scrcpy --audio-codec=aac

You can also test:

scrcpy --audio-codec=flac

or

scrcpy --audio-codec=raw

If you see an error similar to: Failed to initialise audio/opus

Your device may not support Opus encoding properly, and AAC is often the best alternative.

Increase Audio Buffer Size

Audio glitches and crackling can occur when the audio buffer is too small.

The default audio buffer is 50 ms. Try increasing it:

scrcpy --audio-buffer=100

For media playback, even higher values may improve stability:

scrcpy --audio-buffer=200

If you're watching videos and don't need ultra-low latency, larger buffers often eliminate audio dropouts and distortion.

Increase Both Video and Audio Buffers

When streaming videos or games, synchronised buffering can improve playback quality:

scrcpy --video-buffer=200 --audio-buffer=200

This increases latency slightly but can significantly reduce stuttering and audio artifacts.

Adjust Audio Bit Rate

Low bit rates can reduce audio quality.

The default is 128 Kbps, but you can increase it:

scrcpy --audio-bit-rate=256K

or

scrcpy --audio-bit-rate=320K

Higher bit rates provide better audio fidelity at the cost of additional bandwidth. So you might get a bit of lag if you crank things too high.

Test a Different Audio Source

Depending on the Android version and device manufacturer, another audio source may perform better.

For Android 13 and newer:

scrcpy --audio-source=playback

To keep audio playing on both the phone and PC:

scrcpy --audio-dup

Some Android apps may opt out of playback capture. There's nothing you can do about this either, so don't waste your time.

Check Available Audio Encoders

Some devices have multiple encoders, and one may work better than another.

List available encoders:

scrcpy --list-encoders

Select a specific encoder:

scrcpy --audio-codec=opus --audio-encoder='c2.android.opus.encoder'

If you have more than one option, it's worth trying both to see if one works better than the other.

Don't Change the Output Buffer Unless You Have No Other Choice

scrcpy also provides an output buffer setting:

scrcpy --audio-output-buffer=5

Changing this option will more than likely add more issues than it solves, which is why we've left it until the very end to mention it.