MP4 файл через php не воспроизводится как видео html5

Я пытаюсь вывести MP4 видео файл через PHP. Когда он используется через флеш-плеер (например, flowplayer), он работает отлично. Но когда я пытаюсь использовать его в качестве источника для видео-тега html5 или для непосредственного вызова php-файла, это не работает.

Я использую следующий код:

        $filesize = filesize($file);
        header("Content-Type: video/mp4");

        if ( empty($_SERVER['HTTP_RANGE']) )
        {
            header("Content-Length: $filesize");
            readfile($file);
        }
        else //violes rfc2616, which requires ignoring  the header if it's invalid
        {   
            rangeDownload($file);
        }

а также rangeDownload Функция взята из http://mobiforge.com/developing/story/content-delivery-mobile-devices Приложение A.

Даже когда я использую Content-Range заголовок (Content-Range:bytes 0-31596111/31596112), он зависает при загрузке 30,13 МБ видео.

2 ответа

Решение

Наконец-то я нашел способ заставить это работать

header("Content-Type: $mediatype");

if ( empty($_SERVER['HTTP_RANGE']) )
{
    header("Content-Length: $filesize");

    $fh = fopen($file, "rb") or die("Could not open file: " .$file);

    # output file
    while(!feof($fh))
    {
         # output file without bandwidth limiting
        echo fread($fh, $filesize);
    }
    fclose($fh);
}
else //violes rfc2616, which requires ignoring  the header if it's invalid
{   
     rangeDownload($file);
}

Он работает по прямой ссылке в php-файле и внутри видео-тега html5.
Но чтобы работать в Flowplayer (и, возможно, в других проигрывателях flash/html5), вам нужно добавить расширение mp4 (например, view.php? Id=XXX&file=type.mp4)

Это может быть связано с вашим браузером и тем, какой плагин он использует для просмотра видеофайлов, т.е. Причина, по которой он работает с Flash, заключается в том, что flash обрабатывает буферизацию и синхронизацию времени и тому подобное. Обычно не рекомендуется разрешать браузеру обрабатывать медиафайлы, поскольку это полностью зависит от конфигурации браузера и установленных им плагинов.

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

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