【问题标题】:HLS Player: Clear video.js buffer on clickHLS 播放器:单击时清除 video.js 缓冲区
【发布时间】:2021-07-15 16:07:12
【问题描述】:

我有两个实时视频,提供一个创建 H.264 块文件的编码器和一个由 apache Web 服务器提供服务的 HLS 清单。

使用video.js 的浏览器页面显示一个播放器。在浏览器上按“播放”可以正确播放视频。效果很好。

但是,如果我们更改视频源(通过翻转下图中的开关),在新内容显示在播放器中之前会有相当长的延迟(10 秒)。我想把它缩短到 3 秒。

似乎video.js 和/或浏览器中的 HTML5 播放器正在缓冲该数量的内容。 (如果你删除网络服务器上的文件,杀掉 apache,甚至拔掉网线,视频还会继续播放!)

网页上的一个按钮控制开关。单击时,我还想清除或重置播放器,以便它立即重新读取 index.m3u8 清单并下载新块。

到目前为止,还没有在互联网或 video.js API 文档中找到任何有希望的内容。有很多关于获取当前缓冲区百分比的 API 调用的文章,但找不到任何可以完全清除它的 API。

有什么想法吗?

编码器设置为 3 秒块,播放列表深度设置为 10 个条目。

【问题讨论】:

  • 您好,您解决了这个问题吗?我也遇到了像你这样的问题
  • 嗨。不,我永远无法解决它。我研究了很长时间,但最终放弃了 HLS,并使用 MPEG-DASH 论坛中的 dash.js 播放器转而使用 MPEG-DASH。 MPEG-DASH 更难理解,但它似乎在低延迟下有更好的操作。

标签: html5-video http-live-streaming video.js


【解决方案1】:

我遇到了类似的问题。由于我找不到可靠的 API,我想出了一个相当肮脏的解决方法来清除缓冲区:

var ctime = player.currentTime();
player.currentTime(0);
player.currentTime(ctime);

这目前适用于所有主要浏览器。

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多