scrcpy 是一个可以让 adb 设备投屏到电脑端的应用,它支持 windows / linux / macos 平台。
github 地址:https://github.com/Genymobile/scrcpy/tree/master
windows 平台使用非常简单,只需要下载之后解压出来就可以了,都不需要安装。
linux / macos 则需要在终端安装,命令简单,但下载的东西很多,比较耗费时间。
1,连接设备
scrcpy 功能很强大,使用很简单。
如果只有一台 adb 设备连接到电脑,单纯的投屏共享,只需要执行
scrcpy
如果有多台设备,则可以根据参数来选择:
# 通过设备序列号连接
scrcpy --serial=0123456789abcdef
scrcpy -s 0123456789abcdef # 短格式
# 通过 IP 方式 连接
scrcpy --serial=192.168.1.1:5555
# 只有一台 USB 方式连接的设备时
scrcpy --select-usb
scrcpy -d # 短格式
# 只有一台 tcp/ip 方式连接(比如wifi连接)的设备时
scrcpy --select-tcpip
scrcpy -e #短格式
# 有多台 tcp/ip 方式连接的设备时
scrcpy --tcpip=192.168.1.1:5555
scrcpy --tcpip=192.168.1.1 # 默认端口为 5555
更多连接方式:https://github.com/Genymobile/scrcpy/blob/master/doc/connection.md
2,画面设置
分辨率
默认以设备的分辨率投屏,可以通过参数限制最大尺寸
# 会自动匹配宽高尺寸中的较大值,并等比计算另一个值
# 如下设置,原始 1920×1080 的设备将以 1024×576 投屏。
scrcpy --max-size=1024
scrcpy -m 1024 # 短格式
修改视频比特率,默认为 8 Mbps:
scrcpy --video-bit-rate=2M
scrcpy --video-bit-rate=2000000 # 数值表示
scrcpy -b 2M # 短格式
帧率
# 最大帧率
scrcpy --max-fps=15
#输出帧率到控制台
scrcpy --print-fps
编码
有三种编码格式可以选择:
scrcpy --video-codec=h264 # 默认值
scrcpy --video-codec=h265
scrcpy --video-codec=av1
# 列出所有支持的编码
scrcpy --list-encoders
# 容错处理,当默认编码出错时尝试另一种编码
scrcpy --video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc'
H265 质量相对更好,H264 延迟相对更低。AV1 目前并不常见。
画面裁切
画面按设备的自然方向裁切(手机为竖屏,平板为横屏)
scrcpy --crop=1224:1440:0:0 # 从 1224x1440 分辨率的 0,0 点开始裁切
如果指定了 --max-size
参数,会先裁切,再调整尺寸。
屏幕选择
如果设备有多个屏幕,比如折叠手机的内外屏,可以选择投屏的屏幕。
注意:该参数只支持 安卓 10 以上设备
# 投屏第一个屏幕的内容
scrcpy --display=1
# 查看屏幕列表
scrcpy --list-displays
更多画面设置:https://github.com/Genymobile/scrcpy/blob/master/doc/video.md
3,音频控制
*注意:* 只有 安卓 11及以上设备才支持音频,11 需要屏幕亮屏解锁状态,12以上连接成功即可
禁止音频
scrcpy --no-audio
只有音频
scrcpy --no-video
# 设置音频缓冲大小 (没有画面,不用担心音话不同步问题)
scrcpy --no-video --audio-buffer=200
音频来源
默认为设备的内置音频,可以设置为麦克风
scrcpy --audio-source=mic
也可以将设备当作录音机,将录制结果保存
# file.opus 为音频路径和文件名
scrcpy --audio-source=mic --no-video --no-playback --record=file.opus
编码
scrcpy --audio-codec=opus # 默认值
scrcpy --audio-codec=aac # 设备没有 Opus 编码器可以选择这个
scrcpy --audio-codec=raw # 未压缩的 PCM 16 位 LE
# 查看所有支持列表
scrcpy --list-encoders
# 指定编码器
scrcpy --audio-codec=opus --audio-encoder='c2.android.opus.encoder'
比特率
默认音频比特率为 128Kbps
scrcpy --audio-bit-rate=64K
scrcpy --audio-bit-rate=64000 # equivalent
此参数不适用于 RAW 音频编解码器 ( --audio-codec=raw)。
更多音频设置:https://github.com/Genymobile/scrcpy/blob/master/doc/audio.md
4,屏幕与声音录制
scrcpy --record=file.mkv
scrcpy -r file.mp4 # 短格式
# 仅录屏
scrcpy --no-audio --record=file.mp4
# 仅录音
scrcpy --no-video --record=file.opus
scrcpy --no-video --audio-codec=aac --record=file.aac
# .m4a/.mp4 和 .mka/.mkv 都支持 opus 和 aac 音频编码
scrcpy 会根据文件名后缀自动选择编码格式,也可以自己指定
# 注意这时 --record 后面的文件名不需要后缀
scrcpy --record=file --record-format=mkv
只录制,不投屏
scrcpy --no-playback --record=file.mp4
scrcpy -Nr file.mkv
# 使用 Ctrl+C 停止录制
# 录制音频和视频,但只投屏画面不投屏声音
scrcpy --record=file.mkv --no-audio-playback
录制时长
scrcpy --record=file.mkv --time-limit=20 # 单位为秒
如果不指定 record 参数,则同时限制录制和投屏
# 录制和投屏都只有 20 秒
scrcpy --time-limit=20
5,更多设置
禁止休眠
scrcpy --stay-awake
scrcpy -w # 短格式
*注意:只在使用 usb 方式连接时有效*
息屏
scrcpy --turn-screen-off
scrcpy -S # 短格式
息屏与防休眠可以一起使用
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw # 短格式