открытие mp4 через php-результаты в полной загрузке до воспроизведения

Я пытаюсь передать файл mp4 на флеш-плеер через php, и видео загружается полностью, прежде чем начать воспроизведение.

$src = '/var/www/user/data/www/domain.com/video.mp4'; if(file_exists($src) and is_readable($src)) { header('Content-Type: video/mp4'); header('Content-Length: '.filesize($src)); readfile($src); } else die('error'); 

Я попробовал завиток с аналогичными результатами. Любые идеи, что вызывает эту задержку?

Скорее всего, ваш Flash-плеер надеется, что вы будете обрабатывать запросы HTTP Range чтобы он мог быстрее начать работу при воспроизведении.

В аудиопроигрывателе HTML5 / Flash jPlayer содержится информация об этом в руководстве разработчика . Выделите часть запросов байтов:

Ваш сервер должен включить запросы диапазона. Это легко проверить, если вы ответили, что ответ вашего сервера включает Accept-Ranges в его заголовке.

Также обратите внимание, что они предлагают решение PHP для обработки запросов Range если вам нужно использовать PHP вместо прямой загрузки.

smartReadFile.php
https://groups.google.com/forum/#!msg/jplayer/nSM2UmnSKKA/bC-l3k0pCPMJ

Другим вариантом было бы просто отправить Apache файл сам по себе, а не читать его в php и выгружать его на выходе с помощью X-Sendfile.

Сначала убедитесь, что apache скомпилирован с поддержкой sendfile, а затем измените код вывода:

 header ('X-Sendfile: ' . $src); header ('Content-Type: video/mp4'); header ('Content-Disposition: attachment; filename="' . $filename . '"'); exit; 

Обычно это быстрее, чем через PHP.