微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法使用 getUserMedia 减少延迟?

如何解决有没有办法使用 getUserMedia 减少延迟?

在尝试减少 WebRTC 通信的视频延迟时,我测量了视频捕获和视频显示间的延迟。

为了防止测量 WebRTC 涉及的延迟,我只使用了 getUserMedia显示流的 HTML video

我通过每帧显示一个时间戳(使用 requestAnimationFrame)、用 USB 摄像头记录我的屏幕并截取视频显示显示的时间戳都可见的屏幕截图来做到这一点。

平均而言,我测得的延迟为 ~150 毫秒。 这一定是高估了(由于 requestAnimationFrame调用间的时间),但是我所做的最小测量是大约 120 毫秒,这仍然很多。

现在,有没有办法减少视频捕获和视频显示间的延迟


注意:

  • 我尝试使用另一个视频播放器(窗口的内置播放器),结果非常接近(平均延迟约 145 毫秒)
  • 我尝试了另一种视频设备(我的带镜子的笔记本电脑网络摄像头),我认为结果不太接近但仍然升高(平均延迟约 120 毫秒)

解决方法

一般来说,这只能在浏览器中修复。

requestVideoFrameCallback API 正在收集一些数字,例如 captureTime 和 renderTime。 https://web.dev/requestvideoframecallback-rvfc/ 有很好的描述,https://webrtc.github.io/samples/src/content/peerconnection/per-frame-callback/ 将它们可视化。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。