在尝试减少视频延迟的同时WebRTC通信时,我测量了视频捕获和视频显示之间的延迟。
为了防止测量 WebRTC 涉及的延迟,我只是使用getUserMedia
和一个 HTMLvideo
显示流。
我通过每帧显示时间戳来做到这一点(使用requestAnimationFrame
),使用 USB 摄像头录制我的屏幕并拍摄屏幕截图,其中视频显示和显示的时间戳都可见。
平均而言,我测量到的延迟为〜150ms。
这一定是高估了(由于requestAnimationFrame
调用之间的时间),但是我所做的最小测量是 120 毫秒左右,这仍然很多。
Now, 有没有办法减少视频捕获和视频显示之间的延迟 ?
Note:
- 我尝试使用另一个视频读取器(Windows 的内置读取器),测量结果非常接近(平均延迟约 145 毫秒)
- 我尝试了另一个视频设备(我的带镜子的笔记本电脑网络摄像头),结果不太接近,但在我看来仍然较高(平均延迟约 120 毫秒)
一般来说,这只能在浏览器本身中修复。
requestVideoFrameCallback API 正在收集一些数字,例如 captureTime 和 renderTime。https://web.dev/requestvideoframecallback-rvfc/ https://web.dev/requestvideoframecallback-rvfc/有一个很好的描述,https://webrtc.github.io/samples/src/content/peerconnection/per-frame-callback/ https://webrtc.github.io/samples/src/content/peerconnection/per-frame-callback/将它们可视化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)