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

Я пытаюсь настроить 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 МБ) видео, потому что все данные должныбыть загруженным до начала видео.Я хотел бы знать, возможно ли включить своего рода «чанкованное» воспроизведение, которое начинается, когда часть видеоданных уже поступила.

1 Ответ

0 голосов
/ 23 декабря 2018

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

Это будет не просто, поскольку выВам потребуется:

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

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

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

Кроме того, вы можете взглянуть на что-то вроде hls-video-generater или любую другую альтернативу, которую вы могли быfind.

Обновление

Если вы уже используете Azure , я бы посоветовал вам взглянуть на Media Services , это должно дать вам то, что вы хотите, без особых усилий.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...