Scrcpy 视频相关配置
默认情况下,scrcpy 镜像设备屏幕。
也可以改为捕获设备摄像头。
详见专门的摄像头页面。
默认情况下,scrcpy 会尝试以设备分辨率进行镜像。
为提升性能,可以降低分辨率。将宽与高同时限制在某个最大值(如下例为 1024):
scrcpy --max-size=1024scrcpy -m 1024 # short version另一边会按设备的长宽比自动计算。比如 1920×1080 的设备将镜像为 1024×576。
若编码失败,scrcpy 会自动尝试更低分辨率(除非启用了 --no-downsize-on-error)。
在摄像头镜像模式下,--max-size 用于选择摄像头源尺寸(在可用分辨率中)。
默认视频码率为 8 Mbps。修改示例:
scrcpy --video-bit-rate=2Mscrcpy --video-bit-rate=2000000 # equivalentscrcpy -b 2M # short version可限制捕获帧率:
scrcpy --max-fps=15实际捕获帧率可打印到控制台:
scrcpy --print-fps也可随时通过 MOD+i 启用或禁用(见快捷键)。
帧率本质上是可变的:只有屏幕内容发生变化时才会产生新帧。例如,在设备上播放 24fps 的全屏视频时,scrcpy 中的帧率通常不超过 24fps。
可选择视频编解码器,取值包括 h264(默认)、h265 与 av1:
scrcpy --video-codec=h264 # defaultscrcpy --video-codec=h265scrcpy --video-codec=av1H265 质量更好,但 H264 延迟更低。 目前 Android 设备的 AV1 编码器并不常见。
对于高级用法,如需向MediaFormat传递自定义参数,请查看手册页中的 --video-codec-options 或执行 scrcpy --help。
设备上可能存在多个编码器,可通过以下命令列出:
scrcpy --list-encoders默认编码器有时会出问题甚至崩溃,此时可尝试切换其他编码器:
scrcpy --video-codec=h264 --video-encoder=OMX.qcom.video.encoder.avc方向可在 3 个层面生效:
- 通过快捷键 MOD+r 请求设备在竖屏与横屏之间切换(若当前应用不支持目标方向,可能会拒绝)。
--capture-orientation更改镜像方向(设备发送给电脑的视频方向),会影响录制。--orientation在客户端生效,影响显示与录制;显示方向可通过快捷键动态更改。
以指定方向捕获视频:
scrcpy --capture-orientation=0scrcpy --capture-orientation=90 # 90° clockwisescrcpy --capture-orientation=180 # 180°scrcpy --capture-orientation=270 # 270° clockwisescrcpy --capture-orientation=flip0 # hflipscrcpy --capture-orientation=flip90 # hflip + 90° clockwisescrcpy --capture-orientation=flip180 # hflip + 180°scrcpy --capture-orientation=flip270 # hflip + 270° clockwise使用 @ 可锁定捕获方向,使设备的物理旋转不改变捕获的视频方向:
scrcpy --capture-orientation=@ # locked to the initial orientationscrcpy --capture-orientation=@0 # locked to 0°scrcpy --capture-orientation=@90 # locked to 90° clockwisescrcpy --capture-orientation=@180 # locked to 180°scrcpy --capture-orientation=@270 # locked to 270° clockwisescrcpy --capture-orientation=@flip0 # locked to hflipscrcpy --capture-orientation=@flip90 # locked to hflip + 90° clockwisescrcpy --capture-orientation=@flip180 # locked to hflip + 180°scrcpy --capture-orientation=@flip270 # locked to hflip + 270° clockwise捕获方向变换会在 --crop 之后、--angle 之前应用。
在客户端改变视频显示方向:
scrcpy --orientation=0scrcpy --orientation=90 # 90° clockwisescrcpy --orientation=180 # 180°scrcpy --orientation=270 # 270° clockwisescrcpy --orientation=flip0 # hflipscrcpy --orientation=flip90 # hflip + 90° clockwisescrcpy --orientation=flip180 # vflip (hflip + 180°)scrcpy --orientation=flip270 # hflip + 270° clockwise必要时,可分别通过 --display-orientation 与 --record-orientation 单独设置显示与录制方向。
录制文件的旋转通过在 MP4 或 MKV 目标文件中写入显示变换来实现。不支持翻转,因此录制时仅允许前 4 种取值。
将视频内容按自定义角度旋转(单位为度,顺时针):
scrcpy --angle=23旋转中心为可见区域的中心。
该变换在 --crop 与 --capture-orientation 之后应用。
可以裁剪设备屏幕,只镜像其中一部分。
例如,仅镜像 Oculus Go 的一只眼睛:
scrcpy --crop=1224:1440:0:0 # 1224x1440 at offset (0,0)这些数值以设备的自然方向表示(手机为竖屏,平板为横屏)。
裁剪在 --capture-orientation 与 --angle 之前执行。
在显示镜像时,--max-size 在裁剪之后生效;在摄像头模式下,--max-size 先生效(因为它选择的是源尺寸,而非对内容缩放)。
如果设备上有多个显示屏,可选择要镜像的显示屏:
scrcpy --display-id=1可通过以下命令获取显示屏 id 列表:
scrcpy --list-displays仅当设备运行 Android 10 及以上版本时,次级显示屏才可被控制(否则将只读镜像)。
也可以创建虚拟显示屏。
默认不对视频进行缓冲,以获得尽可能低的延迟。
可以添加缓冲以延迟视频流并补偿抖动,从而获得更平滑的播放(参见 #2464)。
scrcpy --video-buffer=50 # add 50ms buffering for video playbackscrcpy --audio-buffer=200 # set 200ms buffering for audio playbackscrcpy --v4l2-buffer=300 # add 300ms buffering for v4l2 sink它们可以同时应用:
scrcpy --video-buffer=50 --v4l2-buffer=300No playback
Section titled “No playback”It is possible to capture an Android device without playing video or audio on the computer. This option is useful when recording or when v4l2 is enabled:
scrcpy --v4l2-sink=/dev/video2 --no-playbackscrcpy --record=file.mkv --no-playback# interrupt with Ctrl+CIt is also possible to disable video and audio playback separately:
# Send video to V4L2 sink without playing it, but keep audio playbackscrcpy --v4l2-sink=/dev/video2 --no-video-playback
# Record both video and audio, but only play videoscrcpy --record=file.mkv --no-audio-playbackNo video
Section titled “No video”To disable video forwarding completely, so that only audio is forwarded:
scrcpy --no-videoVideo4Linux
Section titled “Video4Linux”See the dedicated Video4Linux page.