问题描述
我正在使用 dash.js 参考播放器,我正在尝试通过简单地暂停并在每个步骤中使用适当的时间戳调用 seek() 来执行视频的逐帧步骤。
但是每一步之后都会有一个烦人的延迟,因为玩家似乎一直在一遍又一遍地重新加载同一个片段。
屏幕截图显示了请求:
第一步导致段 19 被(重新)加载。在一些空闲时间之后,接下来的 3 个段也被加载了。然后我连续做了 5 步,每一步都产生了对第 19 段的请求。
有没有什么办法可以让 dash.js 在我逐步浏览一段内容时缓存它?
解决方法
我建议使用基于 SDN 的脚本和 P4/OpenFlow 来运行带有分段视频的播放器,参考播放器会自动记录加载到播放器中的所有片段并将它们发送到客户端。
如果您使用 Wireshark 之类的工具,您将能够看到实验运行中使用的所有段。为了回答您的问题,播放器通常会在出现中断(网络或物理)中断时重新加载同一段。
由于播放器的偏好和使用的分辨率,它可能试图更改段根文件夹。当出现该情况或由于中断而尝试更改分辨率时,它将始终重新加载一个段。总而言之,是的,有一种方法可以让 dash.js 在播放文件时缓存一个段。只需让 Wireshark 应用程序监控您的播放器,这样您就会看到所有使用的片段,如图 here.
所示 ,对于您的问题,这将是一个有趣的阅读,尽管 Ahmed Basil 似乎回答得很好。 DASH Monitoring