MP4 играет при прямом доступе, но не при прочтении PHP, на iOS

Я использую Сценарий PHP для проверки видео запросов прежде, чем служить им. Этот сценарий работает как ожидалось над рабочим столом с Safari и Chrome. Но на iOS, я получаю поврежденную кнопку воспроизведения.

Я уверен, что видео правильно кодируется для iPhone/iPad, потому что, когда я получаю доступ к нему непосредственно, это работает как ожидалось.

Соответствующий код PHP:

$file_name = 'test-video.mp4';
$file_size = (string)(filesize($file_name));
header('Content-Type: video/mp4');
header('Content-Length: '.$file_size);
readfile_chunked($file_name);
exit;

(readfile_chunked() подобно readfile() но для очень больших файлов, найденных в комментариях к странице руководства PHP: http://php.net/manual/en/function.readfile.php. В любом случае, test-video.mp4 только ~5 МБ, который является меньше, чем предел памяти — и в этом случае я на самом деле могу занять место в нормальном readfile() и произведите то же самое поведение.)

Заголовки, которые я получаю, когда я получаю доступ test-video.mp4 непосредственно:

Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:5558749
Content-Type:video/mp4
Date:Sun, 27 Jun 2010 21:02:09 GMT
Etag:"1c04757-54d1dd-489944c5a6400"
Keep-Alive:timeout=10, max=30
Last-Modified:Tue, 22 Jun 2010 01:25:36 GMT
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635

Заголовки из Сценария PHP:

Connection:Keep-Alive
Content-Disposition:inline; filename="test-video.mp4"
Content-Length:5558749
Content-Type:video/mp4
Date:Sun, 27 Jun 2010 21:03:32 GMT
Keep-Alive:timeout=10, max=15
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By:PHP/5.2.13

Я попробовал много различных перестановок заголовков, даже соответствуя им точно тем, которые от прямого запроса, напрасно.

Кто-либо имел успех, служащий видео HTML5 через PHP на iOS?

[Примечание: Я попытался бы использовать X-Sendfile, но сайт находится на общем хосте с очень ограниченным доступом.]

Править: Я читал, та iOS может быть чувствительной о расширениях файла, таким образом, я пытался создать RewriteRule, который переписывает запросы MP4 назад к моему исходному Сценарию PHP, но это не помогло также.

18
задан JKS 28 June 2010 в 17:29
поделиться

1 ответ

Если вы обрабатываете это самостоятельно, то вам также нужно будет обрабатывать запросы байтового диапазона самостоятельно.

8
ответ дан 30 November 2019 в 08:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: