$video
в приведенном выше коде только ручка файла на стороне сервера, вы можете использовать, чтобы прочитать файл из архива. Он не может использоваться непосредственно для браузера.
Вам необходимо обработать чтение файла и вернуть его в отдельный HTTP-запрос. Обычно для этого используется второй скрипт. (Или, если ваше видео относительно мало, вы можете использовать URL-адреса данных, но это не то, что я попытаюсь сделать.) Кроме того, если вы хотите разрешить запросы диапазона байтов, вам придется самому это обработать в вашей логике видеообслуживания.
Вот довольно простой сценарий:
Мой videos.zip
файл содержит несколько различных видео, и я хочу, чтобы получить конкретный один и показать его на странице под названием video.php
Во-первых у меня есть зритель, скажем video.php
, [edit: содержащий тег видео и URL-адрес моего второго скрипта в качестве источника. Так как я мог бы служить другой файл в какой-то момент, я поставил его принять имя файла в параметре v запроса]
..some html/php..
<video>
<source src='zipserve.php?v=itsrainintoast.mp4' type='video/mp4' />
</video>
..more html/php..
Тогда в zipserve.php
у меня есть что-то вроде этого:.
$filename = $_GET['v']; //You probably want to check that this exists first, btw.
$fp = fopen('zip://videos.zip#'.$filename, 'r');
if($fp)
{
header('content-type: video/mp4');
//Note: you should probably also output an appropriate content-length header.
while(!feof($fp))
{
echo fread($fp, 8196);
}
fclose($fp);
}
else
{
echo 'Some error message here.';
}
--Addendum-- Следует также отметить, что для этого необходимо, чтобы расширение расширения zip
было включено.
Более полный пример сценария для извлечения видео с обработкой диапазона и т. П. Можно найти в вопросе на mp4 from PHP - Not playing in HTML5 Video tag, но вам нужно настроить его, чтобы разрешить чтение из zip-файла.
но тиковый конус, не работающий на меня, показывает только черный квадрат и не играет так же хорошо, как на странице «mp4 от PHP - не играет в HTML5 Video tag» тоже не работает. но zip: // workin becuse протестирован –
Если вы используете Firefox, щелкните правой кнопкой мыши черный ящик и выберите игру. Он не будет воспроизводиться автоматически, и я не добавил никаких элементов управления, чтобы щелкнуть, чтобы сообщить об этом. – EPB
В качестве дополнительного примечания Может потребоваться некоторое время, чтобы начать, если видеоролик длинный, а индекс - в конце файла, так как он должен будет загрузить весь файл, чтобы начать воспроизведение. Когда я сделал опечатку, я не получил черный ящик, так что вы должны быть на правильном пути. – EPB