Как реализовать потоковое / кодированное кодирование с помощью хранилища BLOB-объектов Azure в PHP?

Я пытаюсь настроить php api, который может передавать потоковое видео с расширением .mp4 из хранилища BLOB-объектов Azure.
Чего я хочу добиться, так это чтобы не все видео было загружено до его запуска.
Я использую Slim Framework 3 для моего Rest-API.

Я уже реализовал «нормальное» воспроизведение видео, но до того, как видео действительно начнет воспроизводиться, потребуется очень много времени.
Я использую хранилище Azure для PHP Sdk для доступа к хранилищу BLOB-объектов, затем получаю BLOB-объект и использую «fpassthru» для записи видео в ответ http.
Дополнительно я установил заголовок «content-type» и «content-length».

$blob = $this->blobClient->getBlob($this->ContainerName, $filename);
fpassthru($blob->getContentStream());
$response = $response->withHeader('Content-type', 'video/mp4');

Прямо сейчас, пока не начнется воспроизведение видео (около 30 МБ), потребуется очень много времени, потому что все данные должны быть загружены до его начала.
Я хотел бы знать, возможно ли включить своего рода «чанкованное» воспроизведение, которое начинается, когда часть видеоданных уже поступила.

0

Решение

Я думаю, что наилучшим способом будет потоковое видео, используя HLS(RFC 8216) реализация.

Это будет не просто, так как вам нужно:

  • Предоставить конечную точку для получения индексных файлов

  • Разбейте ваш файл mp4 на более мелкие куски, которые можно скачать отдельно HLS поддержка игроков (я думаю, что большинство из них делают в эти дни)

  • Может потребоваться внутреннее управление чанками, так как ломать mp4 каждый раз, когда пользователь запрашивает видео (или его часть), очень неэффективно.

Кроме того, вы можете посмотреть на что-то вроде HLS-видео-generater , или любую другую альтернативу, которую вы можете найти.

Обновить

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector