T
traeai
登录
返回首页
Hacker News Best

scrcpy v4.0 发布

7.0Score
scrcpy v4.0 发布

TL;DR · AI 摘要

scrcpy v4.0 发布,主要更新包括从 SDL2 迁移到 SDL3,增加对 Flex 显示的支持,以及多项技术改进。

核心要点

  • scrcpy v4.0 从 SDL2 迁移到 SDL3
  • 增加了 Flex 显示支持
  • 多项技术改进修复了多个已知问题

结构提纲

按章节快速跳转。

  1. 介绍 scrcpy v4.0 的发布通知方式。

  2. scrcpy v4.0 主要更新包括从 SDL2 迁移到 SDL3

  3. 从 SDL2 迁移到 SDL3。

  4. 增加 Flex 显示支持。

  5. 增加多种用户界面和性能改进。

  6. 修复多个已知的技术问题。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • scrcpy v4.0
    • 从 SDL2 迁移到 SDL3
    • 增加 Flex 显示支持
    • 其他功能增强
      • 增加 --keep-active 选项
      • 设置默认音频输出缓冲区为 10ms

金句 / Highlights

值得收藏与分享的关键句。

#scrcpy#前端#SDL
打开原文

要接收新版本发布的通知,请点击顶部的 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 会定期向系统发送用户活动信号:

code
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 秒钟。

该图标会立即替换屏幕内容:

![Image 1: scrcpy_disconnected_2_small

更多详情请参阅 #6662

Meta Quest

由于 Meta Quest 固件升级,使用 scrcpy 镜像屏幕时出现了闪烁现象。

已经实现了一个临时解决方案,因此现在再次可以镜像 Meta Quest。

更多技术细节请参阅 #5913 (评论)

默音时高 CPU 使用率

一个有趣的 bug:播放默音时比播放非默音音频样本解码后的重采样过程中消耗了更多的 CPU(重采样速度大约慢了 40 倍)。

事实证明,这是由于 [denormals](https://en.wikipedia.org/wiki/Subnormal_number) 引起的:OPUS 解码器没有生成精确的零,而是生成了微小的 denormal 数字,这可能导致 [性能问题](https://en.wikipedia.org/wiki/Subnormal_number#Performance_issues)。

这个问题已经在 FFmpeg 中直接修复:#6715 (评论)

更多快捷键

F11 现在可以切换全屏模式(类似于 MOD+f),MOD+q 现在可以退出 scrcpy。

AI 可能会生成不准确的信息,请核实重要内容