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:

  1. Learn how to customise sound and audio options in SCRCPY.
  2. Can you make the audio better in SCRCPY?

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