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:
- How do you fix audio in SCRCPY when screen mirroring?
- What are the best audio settings to use in SCRCPY?
Table of Contents
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.