scrcpy v4.0 发布

TL;DR · AI 摘要
scrcpy v4.0 发布,主要更新包括从 SDL2 迁移到 SDL3,增加对 Flex 显示的支持,以及多项技术改进。
核心要点
- scrcpy v4.0 从 SDL2 迁移到 SDL3
- 增加了 Flex 显示支持
- 多项技术改进修复了多个已知问题
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- scrcpy v4.0
- 从 SDL2 迁移到 SDL3
- 增加 Flex 显示支持
- 其他功能增强
- 增加 --keep-active 选项
- 设置默认音频输出缓冲区为 10ms
金句 / Highlights
值得收藏与分享的关键句。
scrcpy v4.0 从 SDL2 迁移到 SDL3 以获得活跃维护的好处。
增加 --keep-active 选项,即使设备断开连接也能保持窗口打开。
将默认音频输出缓冲区设置为 10ms 以提高音频质量。
要接收新版本发布的通知,请点击顶部的 Watch > Custom > Releases。
- * *
scrcpy v4.0
自 v3.3.4 的更改:
- 从 SDL2 迁移到 SDL3 (#6216)
- 添加 flex 显示支持 (#6772)
- 添加相机手电筒和变焦支持 (#6243)
- 强制执行窗口宽高比 (#6761,#6774,#2317,#2387,#3460)
- 添加
--keep-active选项 (#6792,#6787) - 添加
--background-color选项 (#6807,#5855) - 默认背景颜色设置为深灰色 (#6807)
- 在关闭前显示断开连接图标 (#6662,#6651)
- 将 F11 作为全屏快捷键 (#6777)
- 添加 Mod+q 快捷键以退出 (#6780,#6612)
- 修复 Meta Quest 屏幕闪烁问题 (#5913)
- 解决物理尺寸与逻辑尺寸混淆问题 (#6772)
- 修复根权限设备上的复制粘贴问题 (#6224)
- 修复从 OPUS 解码静音音频时的高 CPU 使用率问题 (#6715)
- 为视频流添加会话元数据 (#6159)
- 遵循视频能力约束 (#6766)
- 将 Windows 控制台代码页设置为 UTF-8 (#6663)
- 修复包含空格的设备序列号导致的屏幕保护程序意外禁用问题 (#6663,#6664,#3537)
- 通过 mDNS 检测提供的 TCP 设备 (#6665,#6248)
- 错误时保持 Windows 终端打开 (#6667)
- 设置 MediaCodec 的 KEY_PRIORITY 和 KEY_LATENCY 到最小值 (#6670)
- 更早地打开 scrcpy 窗口 (#6694,#6546)
- 修复虚拟显示旋转快捷键 (5fedc79)
- 使用最优尺寸对齐 (#6746,#4949,#6236)
- 添加
--min-size-alignment选项 (#6746) - 修复未播放视频时意外禁用屏幕保护程序的问题 (#6754)
- 添加
--no-window-aspect-ratio-lock选项 (#6761) - 修复方形显示器的旋转问题 (#6770)
- 对齐虚拟显示器尺寸 (#6771)
- 添加
--render-fit选项 (#6772) - 默认音频输出缓冲区设置为 10ms (#6775,#3793)
- 修复右键点击开启虚拟显示的问题 (#6788)
- 修复 OpenGL 运行器关闭死锁问题 (#6794)
- 在正常模式和 OTG 模式之间共享 SDL 提示 (#6809,#6808)
- 升级平台工具 (adb) 至 37.0.0
- 升级 FFmpeg 至 8.1.1 (#6715)
- 升级 SDL 至 3.4.8
- 各种技术修复
- * *
新功能亮点
SDL3
此版本从 SDL2 迁移到 SDL3,以利用活跃维护、错误修复以及持续的上游支持。SDL3 还启用了新的功能,例如在调整窗口大小时锁定窗口宽高比。
感谢 SDL 维护者的工作及其提供的 支持和修复%20sort%3Acreated-desc)!
详情请参见 #6216。
默认显示大小和分辨率
scrcpy --new-display --start-app=com.android.settings --flex-display
使用 --keep-active 可以防止屏幕因无活动而关闭(详见下方):
scrcpy --new-display -x --keep-active
通过增加比特率或更改编解码器来维持大窗口下的良好质量:
scrcpy --new-display -x --video-codec=h265 -b16M
更多详情请参阅 #6772。
摄像头手电筒和变焦
摄像头可以动态控制:
- MOD+t:打开摄像头手电筒
- MOD+Shift+t:关闭摄像头手电筒
- MOD+↑(上箭头):放大
- MOD+↓(下箭头):缩小
也可以通过 --camera-torch 在启动时打开手电筒:
scrcpy --video-source=camera --camera-torch
摄像头的变焦级别可以通过 --camera-zoom 设置:
scrcpy --video-source=camera --camera-zoom=1.5
每个摄像头支持的变焦范围由 --list-cameras 给出(超出支持范围的值将会被限制)。
长宽比
之前,窗口可以自由调整大小,并且会添加黑边以保持内容的长宽比。
得益于 SDL3 中的新 API,现在在调整窗口大小时可以保持长宽比,避免出现黑边。
如果需要恢复旧行为,请使用 --no-window-aspect-ratio-lock。
保持活跃
为了防止设备因无活动而关闭,--keep-active 会定期向系统发送用户活动信号:
scrcpy --keep-active与 --stay-awake 和 --screen-off-timeout 不同,此选项不会改变任何全局设置,并且无论设备是否连接电源都能生效。
背景颜色
默认背景色为纯黑色;现在改为深灰色。
可以通过 --background-color 更改背景色,接受十六进制颜色代码(3位或6位格式):
scrcpy --background-color=#234567 scrcpy --background-color=234567 # 前导 '#' 可选 scrcpy --background-color=#567 # 等效于 #556677
断开连接图标
当镜像连接到设备断开时,窗口会立即关闭,这可能会错误地暗示 scrcpy 已崩溃。
为了使断开连接更加明显,在关闭窗口前会显示一个断开连接图标 2 秒钟。
该图标会立即替换屏幕内容:
 引起的:OPUS 解码器没有生成精确的零,而是生成了微小的 denormal 数字,这可能导致 [性能问题](https://en.wikipedia.org/wiki/Subnormal_number#Performance_issues)。
这个问题已经在 FFmpeg 中直接修复:#6715 (评论)
更多快捷键
F11 现在可以切换全屏模式(类似于 MOD+f),MOD+q 现在可以退出 scrcpy。
- BlueSky: `@scrcpy.bsky.social`
- Twitter: `@scrcpy_app`
- Reddit: `r/scrcpy`