我正在使用VideoJs播放各种视频。有些比其他大。 这是一个简单的场景。开始播放的视频总长度为100mb,持续时间为10分钟。如果用户跳至第二分钟,则会向后端发出呼叫,以将剩余的全部视频存储到服务器。
就用户体验而言,这并不好。下载时间可能非常长,播放器将被卡在加载中,直到完成为止。
理想情况下,我希望它能以5-10秒的时间段下载。
老实说,javascript不是我的强项,所以我真的不知道该怎么做。
后端接受字节范围。我也有清漆。
如果我当前使用的视频播放器运行不正常或者由于某种原因不支持我正在寻找的视频播放器,我也不反对使用该视频播放器。
任何朝着正确方向指向的人都会受到赞赏。
对于遇到此问题并且有相同问题的任何人:
https://info.varnish-software.com/blog/caching-partial-objects-varnish
还要确保清漆转发了Range标头。
答案 0 :(得分:1)
这很可能与您的文件或服务器配置有关,而不一定与VideoJS有关。当您希望用户能够搜索当前缓冲区之外的内容时,通常是在谈论psueudo streaming。
为此,您的服务器必须:
content-type
标头由于您说过服务器确实支持字节范围请求,所以我会仔细检查content-type
标头。
此外,如果您正在使用H.264 MP4文件,则可能需要通过将元数据(MOOV atom)移动到文件的开头来优化它们以进行流传输。一些视频编码器也将其称为“快速启动”。可以对已经编码的MP4执行此操作的独立应用程序是qtfaststart。
否则,VideoJS应该支持自动搜索。您可以在JSFiddle上找到许多示例。
您也可以尝试以编程方式进行搜索,以查看其行为是否有所不同:
let player = VideoJS.setup("video");
player.play();
player.currentTime(340); // time to seek to