我们的网站上托管了一些视频文件(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 在播放此类视频时发出如此多的请求仍然未知......