Новейшая версия Safari (для мобильных и настольных компьютеров) буферизует видео в 4 раза медленнее, чем в других браузерах, поскольку отправляет множество запросов с небольшим диапазоном байтов, а не несколько больших.Ниже приведен пример запроса и ответа (этот запрос продолжается с небольшим размером 64 КБ до тех пор, пока не будет загружено достаточно данных для воспроизведения видео, в Chrome, Firefox и других браузерах запрос диапазона байтов намного больше, и поэтому данные доставляются значительнобыстрее в одном потоке).
Можно ли обойти эту проблему, заставив мой веб-сервер (apache) игнорировать небольшой запрос байта Safari размером 64 КБ и вместо этого отправлять больший объем данных (около 5 МБ))?Запрос сделан непосредственно к видеофайлу.
Summary
URL: http://example.org/video.mp4?rand=942824
Status: 206 Partial Content
Source: Network
Request
GET /video.mp4 HTTP/1.1
Accept: */*
Connection: keep-alive
Range: bytes=0-65535
Accept-Encoding: identity
Response
HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 0-65535/467342440
Accept-Ranges: 0-467342440
Content-Length: 65536
Connection: keep-alive
Server: nginx/1.2.1
ОБНОВЛЕНИЕ: мне удалось изменить заголовок диапазона запроса, используя приведенный ниже код, однако, даже несмотря на то, что 5 МБ загружаются быстро, Safari продолжает отправлять эти небольшие 64 КБзапрашивает и игнорирует 5 Мб, которые были загружены, так что это не решение.
SetEnvIf Range bytes=0-65535 HAVE_MyRequestHeader
RequestHeader unset Range env=HAVE_MyRequestHeader
RequestHeader set Range bytes=0-5000000 env=HAVE_MyRequestHeader