Chrome 在下载 MP4 视频(约 34MB)时发出过多请求(约 22000 个)

Chrome 在下载 MP4 视频(约 34MB)时发出过多请求(约 22000 个)

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

在 Google Chrome 中,所有文件加载速度都太慢了,但在 FF 中一切正常。
我测试下载了一个 34MB 的文件(我通过直接链接打开了文件)。结果如下:

  • 铬合金制成~22000(!)要求,982MB转入。
  • 火狐仅提出了 5 个请求。

作为服务器我们使用nginx采用默认(与视频文件服务相关)设置。

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

> 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  

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

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

答案1

问题是由视频文件(即所使用的转换器)引起的。
导致问题的文件是用格式工厂 v2.6.
升级至v3.7并重新转换,问题消失。

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

相关内容