Как принудительно увеличить размер ответа в байтах для видео в Apache? - PullRequest
0 голосов
/ 21 ноября 2018

Новейшая версия 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

1 Ответ

0 голосов
/ 21 ноября 2018

Нет.Вы не можете изменить это на стороне сервера.Клиент делает запрос, сервер выполняет запрос.Отправка данных, которые клиент не запрашивал, может привести к ошибкам.

...