Audio forwarding is supported for devices with Android 11 or higher, and it is enabled by default:
If audio capture fails, then mirroring continues with video only (since audio is
enabled by default, it is not acceptable to make scrcpy fail if it is not
available), unless --require-audio
is set.
To disable audio:
scrcpy --no-audio
To disable only the audio playback, see no playback.
To play audio only, disable the video:
scrcpy --no-video
# interrupt with Ctrl+C
Without video, the audio latency is typically not criticial, so it might be interesting to add buffering to minimize glitches:
scrcpy --no-video --audio-buffer=200
By default, the device audio output is forwarded.
It is possible to capture the device microphone instead:
scrcpy --audio-source=mic
For example, to use the device as a dictaphone and record a capture directly on the computer:
scrcpy --audio-source=mic --no-video --no-playback --record=file.opus
The audio codec can be selected. The possible values are opus
(default),
aac
, flac
and raw
(uncompressed PCM 16-bit LE):
scrcpy --audio-codec=opus # default
scrcpy --audio-codec=aac
scrcpy --audio-codec=flac
scrcpy --audio-codec=raw
In particular, if you get the following error:
Failed to initialize audio/opus, error 0xfffffffe
then your device has no Opus encoder: try scrcpy --audio-codec=aac
.
For advanced usage, to pass arbitrary parameters to the MediaFormat
,
check --audio-codec-options
in the manpage or in scrcpy --help
.
For example, to change the FLAC compression level:
scrcpy --audio-codec=flac --audio-codec-options=flac-compression-level=8
Several encoders may be available on the device. They can be listed by:
scrcpy --list-encoders
To select a specific encoder:
scrcpy --audio-codec=opus --audio-encoder='c2.android.opus.encoder'
The default audio bit rate is 128Kbps. To change it:
scrcpy --audio-bit-rate=64K
scrcpy --audio-bit-rate=64000 # equivalent
This parameter does not apply to RAW audio codec (--audio-codec=raw
).
Audio buffering is unavoidable. It must be kept small enough so that the latency is acceptable, but large enough to minimize buffer underrun (causing audio glitches).
The default buffer size is set to 50ms. It can be adjusted:
scrcpy --audio-buffer=40 # smaller than default
scrcpy --audio-buffer=100 # higher than default
Note that this option changes the target buffering. It is possible that this target buffering might not be reached (on frequent buffer underflow typically).
If you don't interact with the device (to watch a video for example), a higher latency (for both video and audio) might be preferable to avoid glitches and smooth the playback:
scrcpy --display-buffer=200 --audio-buffer=200
It is also possible to configure another audio buffer (the audio output buffer), by default set to 5ms. Don't change it, unless you get some robotic and glitchy sound:
# Only if absolutely necessary
scrcpy --audio-output-buffer=10
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。