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

Javascript Video.js下载块而不是整个视频,javascript,video.js,Javascript,Video.js,我经常播放各种视频。有些比另一些大。 这里有一个简单的场景。视频开始播放,总长度为100mb,持续时间为10分钟。如果用户跳到第2分钟,则会呼叫后端服务器,以处理剩余的全部视频 就用户体验而言,这并不好。下载时间可能相当长,玩家在下载完成之前将一直处于加载状态 理想情况下,我希望它能以5-10秒的时间下载 老实说,javascript不是我的强项,所以我真的不知道在哪里可以这样做 后端接受字节范围。我还有一个清漆 另外,如果我目前使用的视频播放器不好或者由于某种原因不支持我所寻找的,我也不反对使

我经常播放各种视频。有些比另一些大。 这里有一个简单的场景。视频开始播放,总长度为100mb,持续时间为10分钟。如果用户跳到第2分钟,则会呼叫后端服务器,以处理剩余的全部视频

就用户体验而言,这并不好。下载时间可能相当长,玩家在下载完成之前将一直处于加载状态

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

老实说,javascript不是我的强项,所以我真的不知道在哪里可以这样做

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

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

任何指向正确方向的指示都是非常值得赞赏的


对于遇到此问题并有相同问题的任何人:


还要确保varnish转发范围标头。

这很可能是文件或服务器配置的问题,而不一定是VideoJS的问题。当您希望用户能够在当前缓冲区之外进行搜索时,您通常谈论的是

为此,服务器必须:

  • 支持字节范围请求(您指出后端确实支持此请求)
  • 返回正确的
    内容类型
    标题
由于您声明您的服务器支持字节范围请求,因此我将仔细检查
内容类型
标题

此外,如果您使用的是H.264 MP4文件,则可能需要通过将元数据()移动到文件的开头来优化这些文件的流式传输。一些视频编码器也将其称为“快速启动”。可以对已编码的MP4执行此操作的独立应用程序是

否则,VideoJS应该支持自动搜索。您可以在JSFIDLE上找到许多这样的示例

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

let player = VideoJS.setup("video");
player.play();
player.currentTime(340);  // time to seek to

这很可能是文件或服务器配置的问题,不一定是VideoJS。当您希望用户能够在当前缓冲区之外进行搜索时,您通常谈论的是

为此,服务器必须:

  • 支持字节范围请求(您指出后端确实支持此请求)
  • 返回正确的
    内容类型
    标题
由于您声明您的服务器支持字节范围请求,因此我将仔细检查
内容类型
标题

此外,如果您使用的是H.264 MP4文件,则可能需要通过将元数据()移动到文件的开头来优化这些文件的流式传输。一些视频编码器也将其称为“快速启动”。可以对已编码的MP4执行此操作的独立应用程序是

否则,VideoJS应该支持自动搜索。您可以在JSFIDLE上找到许多这样的示例

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

let player = VideoJS.setup("video");
player.play();
player.currentTime(340);  // time to seek to

你说得对。我正在查看备份配置,似乎vcl varnish配置有问题。某处。登录后,一切正常。例如
内容范围:字节40566784-108567442/108567443
。未登录时
内容范围:字节0-119823824/119823825
。看起来varnish没有正确地转发标题,或者它正在一路移除标题。我会查清楚的。我也会接受你的答案,因为这是最接近问题的答案。不幸的是,我对清漆了解不多,所以我不能帮你。如果你不能弄明白,我会发布另一个问题,特别是关于这个问题,因为我知道有相当多的清漆专家在监控标签。弄明白了。我在文件中缺少一个配置:
sub-vcl_hash{if(req.http.x-range~”bytes=“){hash_数据(req.http.x-range);unset req.http.range;}
。谢谢你的提醒,你说得对。我正在查看备份配置,似乎vcl varnish配置有问题。某处。登录后,一切正常。例如
内容范围:字节40566784-108567442/108567443
。未登录时
内容范围:字节0-119823824/119823825
。看起来varnish没有正确地转发标题,或者它正在一路移除标题。我会查清楚的。我也会接受你的答案,因为这是最接近问题的答案。不幸的是,我对清漆了解不多,所以我不能帮你。如果你不能弄明白,我会发布另一个问题,特别是关于这个问题,因为我知道有相当多的清漆专家在监控标签。弄明白了。我在文件中缺少一个配置:
sub-vcl_hash{if(req.http.x-range~”bytes=“){hash_数据(req.http.x-range);unset req.http.range;}
。谢谢你的提醒。