Как принудительно увеличить размер ответа в байтах диапазона для видео в Apache?

Новейшая версия 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
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
0
891
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме