scrcpy性能调优指南:10个参数让安卓镜像稳定跑满120fps
2026/9/3 22:31:18 网站建设 项目流程

scrcpy性能调优指南:10个参数让安卓镜像稳定跑满120fps

【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy

scrcpy是一款免费开源的安卓投屏与控制工具(Display and control your Android device),无需安装 Root 即可在电脑上镜像手机屏幕。但默认参数下,镜像常常卡顿、延迟高。本文精选 10 个核心参数,教你一步步把 scrcpy 调优到流畅满帧。

💡 快速预览 scrcpy 的镜像效果:

一、先看效果:用 --print-fps 实测帧率

调优之前,先量化现状。开启实时帧率显示,观察窗口标题栏的 FPS 数值:

scrcpy --print-fps

也可随时用快捷键MOD+i切换帧率显示(MOD 默认是 Ctrl,见 doc/shortcuts.md)。

📌 注意:帧率是“可变”的——只有屏幕内容变化时才产生新帧。播放 24fps 的视频,scrcpy 最高也只能到 24fps。所以“跑满 120fps”的前提是屏幕内容足够动态。

二、10 个调优参数速查表

#参数作用推荐值
1--max-size限制镜像分辨率1280
2--video-bit-rate视频码率低配 2M / 高配 10M
3--max-fps限制采集帧率上限不写(默认不限制)
4--print-fps显示实时帧率调试时开启
5--video-codec选择编码格式h264 / h265
6--video-encoder指定硬件编码器--list-encoders
7--crop裁剪屏幕区域只镜像目标区域
8--no-mipmaps禁用缩放缓冲贴图省显存
9--video-buffer视频缓冲补偿抖动30~50ms
10--tunnel-host/--tunnel-port无线模式走本地回环网络不稳时

参数定义均可在 app/src/cli.c 中查到,官方视频调优文档见 doc/video.md。

三、逐项调优详解

1️⃣ 降分辨率:--max-size(收益最大的参数)

默认 scrcpy 按设备原始分辨率镜像(如 2K/1440p 手机就是全分辨率),编码压力巨大。限制到 1280:

scrcpy --max-size=1280 # 短写:scrcpy -m 1280

另一维度会按设备宽高比自动计算(1920×1080 的设备镜像为 1080×607)。弱电脑上这是第一优先级。若编码失败,scrcpy 会自动降档重试(可用--no-downsize-on-error关闭该行为)。

2️⃣ 调码率:--video-bit-rate

默认码率为 8Mbps。网络/USB 带宽不足时降码率能显著减少丢帧;追求清晰度则拉高:

scrcpy --video-bit-rate=2M # 低配设备 scrcpy --video-bit-rate=10M # 高端设备 + Wi-Fi

3️⃣ 帧率上限:--max-fps

高刷屏上如果不限制采集频率,手机端 CPU 会持续满负荷编码。需要省电或稳定时主动封顶:

scrcpy --max-fps=60

反之,要跑满 120fps 就不要加这个参数(默认不限制),并让手机端开启 120Hz 刷新率。

4️⃣ 选对编码:--video-codec

scrcpy --video-codec=h264 # 默认,延迟最低 scrcpy --video-codec=h265 # 质量更高、带宽更省

H264 延迟低,追帧率选它;H265 同画质码率更低,追清晰度选它。

5️⃣ 指定硬件编码器:--video-encoder

部分机型默认编码器存在 bug 甚至崩溃,可列出全部编码器后手动指定:

scrcpy --list-encoders scrcpy --video-codec=h264 --video-encoder=OMX.qcom.video.encoder.avc

这是解决“间歇性卡顿”的隐藏大招,服务端编码器实现位于 server/src/main/java/com/genymobile/scrcpy/video/。

6️⃣ 只镜像需要的区域:--crop

只需要镜像游戏窗口或局部内容时,裁剪可成倍降低编码量:

scrcpy --crop=1224:1440:0:0 # 在偏移(0,0)处取 1224x1440 区域

7️⃣ 省显存:--no-mipmaps

禁用 OpenGL 缩放缓冲贴图,低端显卡上减少显存占用与切换窗口时的纹理重建开销:

scrcpy --no-mipmaps

8️⃣ 用缓冲换平滑:--video-buffer

默认零缓冲以获得最低延迟,但网络抖动会造成画面“一顿一顿”。加少量缓冲可补偿抖动:

scrcpy --video-buffer=50 # 增加 50ms 缓冲

⚖️ 权衡:缓冲越大越平滑、延迟越高。追求 120fps 低延迟就别加;无线投屏卡顿可试 30~50ms。

9️⃣ 无线模式走本地回环:--tunnel-host

无线投屏时若 Wi-Fi 到电脑链路不稳定,可让 adb 隧道走 127.0.0.1,规避 NAT 与广播干扰:

scrcpy --tunnel-host=127.0.0.1

配合--tunnel-port指定端口,连接细节参考 doc/tunnels.md。

🔟 固定分辨率 + 错误自动降档

编码失败时 scrcpy 会自动尝试更低分辨率(见 doc/video.md)。想固定不降档排查问题:

scrcpy --no-downsize-on-error

四、一套实测流畅的组合拳

# 低配电脑 + 高刷屏手机,稳定流畅 scrcpy --max-size=1280 -b 4M --print-fps --no-mipmaps # 高端机 + Wi-Fi,追求 120fps 满帧低延迟 scrcpy --video-codec=h264 --video-bit-rate=10M --tunnel-host=127.0.0.1

五、调优心法总结

  1. 先测量--print-fps看真实帧率,别凭感觉。
  2. 先降分辨率--max-size是性价比最高的参数。
  3. 卡顿就换编码器--list-encoders+--video-encoder
  4. 延迟与平滑二选一:低延迟不加--video-buffer,抖动大再加 30~50ms。
  5. 120fps 前提:手机端刷新率开到 120Hz、内容足够动态、不加--max-fps限制。

按这套流程调整后,绝大多数设备都能让 scrcpy 安卓镜像从“能看”进化到“丝滑”。

【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询