Chrome 在下载 MP4 视频 (~34MB) 时发出了太多请求 (~22000)

Vas*_*ily 8 http nginx google-chrome

我们在我们的网站上托管了一些视频文件 (mp4)。

所有文件在谷歌浏览器中加载速度太慢,在 FF 中一切正常。
我测试了一个大小为 34MB 的文件的下载(我通过直接链接打开了该文件)。结果是:

  • Chrome发出了~22000(!) 个请求,传输了982MB
  • Firefox只提出了 5 个请求。

作为服务器,我们使用具有默认(与视频文件服务相关)设置的nginx

这里是 Chrome 和服务器之间的交互(前五个请求)。仅包括Range, Content-Length,Content-Range标题。
(< - Chrome 发送的标头,< - 服务器发送的标头):

> Initial request for file, usual GET  
< Content-Length:35690389  
< Content-Type:video/mp4  

Then a bunch of similar requests, on which the server responded with 206 status code:  
---  
> Range:bytes=0-  
< Content-Length:35690389  
< Content-Range:bytes 0-35690388/35690389  
---   
> Range:bytes=29100305-  
< Content-Length:6590084  
< Content-Range:bytes 29100305-35690388/35690389  
---  
> Range:bytes=35566374-   
< Content-Length:124015  
< Content-Range:bytes 35566374-35690388/35690389  
---  
> Range:bytes=32-  
< Content-Length:35690357  
< Content-Range:bytes 32-35690388/35690389  
Run Code Online (Sandbox Code Playgroud)

看起来 Chrome 误解了一些从服务器发送的标头(例如 Range)并多次下载相同的文件。

什么可能导致问题?有任何想法吗?

Vas*_*ily 3

该问题是由视频文件(即所使用的转换器)引起的。
导致问题的文件是使用Format Factory v2.6进行转换的。
升级到v3.7并重新转换后问题消失。

是什么让 Chrome 在播放此类视频时发出如此多的请求仍然未知......