Как транслировать медиафайл с помощью PHP? - PullRequest
7 голосов
/ 24 сентября 2010

Я пытаюсь создать приложение, в котором мне нужно передавать медиафайлы (аудио и видео) в браузер.Я читаю файл через php и отправляю данные в браузер.Я использую следующий код.

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: {$file->getMimetype()}");
header("Content-Disposition: inline; filename=".$filename.";");
header("Content-Length: ".strlen($file_content));

echo $file_content;

Все работает нормально, кроме случаев, когда я пытаюсь переслать видео или аудио (я имею в виду, что текущее местоположение воспроизведения составляет 0:15, и оно сразу переходит к 1: 25), мультимедиа останавливается, и когда я снова нажимаю кнопку воспроизведения, он начинается с начала.

Я думаю, что проблема с буферизацией, но не могу понять.Я делаю что-то неправильно в заголовке или что-то еще требуется.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 24 сентября 2010

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

4 голосов
/ 24 сентября 2010

То, что вы хотите, называется «Запросы диапазона содержимого» * ​​1001 *

Посмотрите здесь Возобновляемая загрузка при использовании PHP для отправки файла?

1 голос
/ 24 сентября 2010

Вот хороший урок, вам нужен только раздел PHP, но все же: http://www.devshed.com/c/a/PHP/Video-Streaming-PHP-Script-Tutorial/3/

1 голос
/ 24 сентября 2010

Я недавно сталкивался с этим, который может вам помочь:

http://www.jasny.net/articles/how-i-php-x-sendfile/

Вместо того, чтобы передавать весь файл через PHP (который расходует память), вы можете использовать x-sendfile. Это модуль Apache, который позволяет вам запускать программу PHP, но передавать управление обратно на веб-сервер для обработки фактической загрузки файла, как только ваш код выполняет то, что ему нужно (аутентификация и т. Д.).

Это означает, что вашему PHP-коду не нужно беспокоиться о том, как файл обслуживается; пусть веб-сервер делает то, для чего он предназначен.

Надеюсь, это поможет.

...