#3020·midscene

[功能]: 为 Android Studio scrcpy 预览添加有界延迟流控制

作者: pengal创建于 2026年8月21日更新于 2026年8月21日

此特性能解决什么问题 ?

□ 版本( O)

  • 中场:1.11.0/最新 " 主要 "
  • 经核查的来源承诺:`dfc5a5f6ce41abb4f01d4be8c4d998ffa2b5a8c1'。
  • 运行时间:Windows上的中场工作室
  • 机器人装置:HONOR BRC-AN00
  • 预览配置文件:1600px最大尺寸,8 Mbps H.264

□ 特性请求

有助于Android Studio scrcpy预览提供视频制作与渲染之间的有限度的相对流控制.

当前预览管道为:

页:1 Android 屏幕

  • scrcpy / 介质编码器

  • 亚行视频流

  • 机器人游戏场外车

  • 袜子. IO 视频数据事件

  • 电子渲染器

  • 可读结构

  • WebCodes 视频剪辑器

  • 视频屏幕渲染器

  • 预览画布


在连续滚动,动画,或者一个增加渲染器负载的AI用例中,出厂者可以比渲染器更快地生成帧来解码并绘制.

在这种情况下,预览可能逐渐落在物理设备后. 在运输拥堵或帧损失后,也可能需要一些时间才能回到最新的设备状态.

□动机

现场预览一般比显示每个中间帧更能从新鲜度中获益.

当消费者无法跟上时,继续解码旧的压缩相框会增加耐用性. 对于工作室的预览,最好是有选择地丢弃已过时的相框,并从最近的关键相框恢复。

来自受影响运行的补充仪器显示:

- 侧车道读取孔仍低于约213米。
- 被观察的包裹年龄约为5.268秒。
- 制造器收到25 634包,但画出16 586个相框。
- 制造器没有观察到7 082个序列号。
- `可读结构.希望Size'仍为`4'。

这些观察表明,设备到侧行车读取可以保持接近实时,而工作则会后期在渲染管中积累.

□ 当前的能力差距

生产者比率

工作室预览请求1600px,8 Mbps流,但目前没有定义明确的预览帧率限制.

因此,一个设备即使预览消费者不需要同样的速率,也可以以显示的刷新速率生产帧.

消费者反压

渲染器目前使用“可读Stream.desiredSize”作为超载信号。

然而,WebCodecs可以通过同步调用‘VideoDecoder.decode ()'来接受一个数据包,同时保留其内部队列中的实际解码工作. 因此,流回压不一定代表解码器和渲染器的工作量。

框架新鲜度

渲染器目前没有明确的包新鲜度合同:

- 没有单音包序列;
- 侧车不接收/发送时间戳;
- 没有最高包装年龄政策;
- 序列中断后没有明显的恢复状态。

如果没有这些信号,渲染器就无法区分出一个被延迟于运输或渲染器调度的已过时的相机框.

关键框架回收
. . . . . . .

内容来源: web-infra-dev/midscene