【发布时间】:2020-09-08 03:56:00
【问题描述】:
我试图确保(尽可能)HTML5 视频只有在它能够完全播放而无需缓冲时才开始播放。对于上下文,视频的 MediaStream 然后用于与另一个音频源混合并通过对等 WebRTC 连接发送。视频通常为 5-10MB,时长为几分钟(即良好的宽带连接应该可以在播放完成之前轻松加载整个视频)。
为了实现这一点,我的代码当前等待视频元素上的canplaythrough 事件开始并在它触发时调用play()。
从视频开始播放的意义上说,这种“有效”,在大多数情况下,缓冲足以让视频不间断地播放。但是,在少数情况下(特别是到目前为止,两个人都在 MacBook Airs 上运行 Chrome 并且显然不是令人难以置信但不错的宽带互联网连接)视频播放交错且断断续续——我认为这意味着视频缓冲不足。
是否有更好的技术可以确保视频在大多数浏览器上得到充分缓冲?
使用fetch() 缓冲内存中的整个视频可能会奏效吗?还是生成的blob() 实际上也在幕后懒惰地缓冲?
鉴于我无法真正在本地复制这些问题,是否有测试和调试此类问题的良好做法?
【问题讨论】:
标签: html video buffering mediastream