Мы размещаем на нашем сайте несколько видеофайлов (mp4).
В Google Chrome все файлы загружаются слишком медленно, в FF все ок.
Я протестировал загрузку файла размером 34MB (открывал файл по прямой ссылке). Результат:
В качестве сервера мы используем 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
Похоже, Chrome неправильно понимает некоторые заголовки, которые отправляются с сервера (например, Range), и загружает одни и те же фрагменты файла много раз.
Что может вызвать проблему? Любые идеи?
Проблема была вызвана видеофайлами (а именно использованным конвертером).
Файлы, вызвавшие проблему, были преобразованы с помощью Format Factory v2.6.
После обновления до v3.7 и при повторном преобразовании проблема исчезла.
Что заставляет Chrome делать столько запросов при воспроизведении таких видео, пока неизвестно ...