SCRCPY has dozens and dozens of different customisation options that you can use to get the exact screen mirroring experience you want. It's also super easy to use all of these customisations in pretty much any combination you want. In this guide, we will be going through all of the audio customisation options that are available for SCRCPY.
Takeaways:
- Learn how to customise sound and audio options in SCRCPY.
- Can you make the audio better in SCRCPY?
Table of Contents
How to Customize Sound Settings in SCRCPY
Audio forwarding is enabled by default for Android 11 and above but it might not work in the exact way that you want it to. It also has a tendency to crash from time to time so you might want to customise things using some of the settings shown below. If you're new to SCRCPY you'll need to read the following guide before starting everything below. It will show you how to use commands in SCRCPY. This is really important as you will more than likely want to string commands together.
Audio Forwarding
- Android 12 or newer: Works out-of-the-box.
- Android 11: Requires the device screen to be unlocked during startup. A temporary popup ensures the system recognizes SCRCPY’s shell app in the foreground.
- Android 10 or earlier: Audio capture is unavailable and automatically disabled. But you can use SNDCY instead. It's not as simple but it works fairly well.
If audio capture fails, video mirroring continues unless you are using the --require-audio command.
To disable audio entirely you can use the following command.
scrcpy --no-audio
SCRCPY with Audio Only
For audio-only playback is the following command.
scrcpy --no-video --no-control
If no window is required, this simplified command can be used.
scrcpy --no-window
For better audio stability (less glitching), increase the buffer size.
scrcpy --no-video --audio-buffer=200
Audio Source Configuration
By default, SCRCPY forwards the device audio output. You can customize the audio source:
Device Microphone
To capture the microphone audio use the following command.
scrcpy --audio-source=mic
Example: Using the device as a dictaphone
scrcpy --audio-source=mic --no-video --no-playback --record=file.opus
Audio Duplication (Android 13+)
Forward audio playback while allowing it to play on the device:
scrcpy --audio-dup
Note: Requires Android 13 and depends on app permissions.
SCRCPY Audio Codec Options
SCRCPY supports multiple audio codecs:
- Default: opus
- Alternatives: aac, flac, raw
To select a codec:
scrcpy --audio-codec=aac
If you encounter errors like: Failed to initialize audio/opus, error 0xfffffffe
Switch to another codec:
scrcpy --audio-codec=aac
SCRCPY Advanced Codec Options
Customize codec parameters, such as FLAC compression level:
scrcpy --audio-codec=flac --audio-codec-options=flac-compression-level=8
SCRCPY Audio Encoder Selection
List available encoders:
scrcpy --list-encoders
Specify an encoder:
scrcpy --audio-codec=opus --audio-encoder='c2.android.opus.encoder'
SCRCPY Audio Bit Rates
Default bit rate: 128Kbps. Adjust it as needed:
scrcpy --audio-bit-rate=64K
scrcpy --audio-bit-rate=64000 # equivalent
Note: This does not apply to the raw codec.
SCRCPY Audio Buffering Options
Buffering affects latency and playback quality:
- Default: 50ms.
- Adjust buffer size for latency vs. glitch trade-off:
scrcpy --audio-buffer=40 # Lower latency
scrcpy --audio-buffer=100 # Reduced glitches
SCRCPY Audio Output Buffer
If sound becomes robotic or glitchy, modify the audio output buffer (use cautiously):
scrcpy --audio-output-buffer=10
Combining Video and Audio Buffering
For smoother playback when interacting with the device is unnecessary:
scrcpy --display-buffer=200 --audio-buffer=200