Video.js 下载块而不是整个视频

2024-01-31

我在用着VideoJs https://github.com/videojs/video.js播放各种视频。有些比其他的大。 这是一个简单的场景。开始播放总长度为 100mb、持续时间为 10 分钟的视频。如果用户跳到第 2 分钟,则会调用后端来服务器整个剩余的视频。

就用户体验而言,这并不好。下载时间可能会相当长,并且播放器将陷入加载状态,直到完成为止。

理想情况下,我希望它能够以 5-10 秒的时间块进行下载。

老实说,javascript 不是我的强项,所以我真的不知道该怎么做。

后端接受字节范围。我还有清漆。

另外,如果我当前使用的视频播放器不好或者由于某种原因不支持我正在寻找的内容,我也不反对使用其他视频播放器。

任何指向正确方向的指示都将受到高度赞赏。


对于任何遇到这个问题并且有同样问题的人:

https://info.varnish-software.com/blog/caching-partial-objects-varnish https://info.varnish-software.com/blog/caching-partial-objects-varnish

还要确保 varnish 转发 Range 标头。


这很可能是您的文件或服务器配置的问题,而不一定是 VideoJS 的问题。当您希望用户能够在当前缓冲区之外进行搜索时,您通常会谈论伪流式传输 https://www.techradar.com/news/internet/how-internet-video-streaming-works-1095211/2.

为此,您的服务器必须:

  • 支持字节范围请求(您表明您的后端确实支持此)
  • 返回正确的content-type header

既然你说你的服务器确实支持字节范围请求,我会仔细检查content-type header.

此外,如果您使用 H.264 MP4 文件,您可能需要通过移动元数据来优化它们以进行流式传输(MOOV原子 https://www.ezs3.com/public/Checking_Metadata_or_Moov_Atom_Location.cfm) 到文件的开头。一些视频编码器也将此称为“快速启动”。可以对已编码的 MP4 执行此操作的独立应用程序是快速启动 https://github.com/danielgtaylor/qtfaststart.

否则,VideoJS 应该支持自动查找。您可以在 JSFiddle 上找到许多示例。

您还可以尝试以编程方式进行查找,看看其行为是否有任何不同:

let player = VideoJS.setup("video");
player.play();
player.currentTime(340);  // time to seek to
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Video.js 下载块而不是整个视频 的相关文章

随机推荐