Перейти к основному содержимому
Версия: Next

Стриминг

Параметры стрима

Основными параметрами стрима являются выходной протокол stream.protocol и качества (разрешения выходного потока) stream.qualities. По умолчанию stream.protocol = "llhls", stream.qualities = ["bypass"]. Качество bypass говорит о том, что входящий от стримера видеопоток не будет транскодироваться и будет передан в плеер в исходном качестве.

Управление стримом

Для управления объектом stream доступны методы создания, обновления, удаления, включения и выключения стрима.

к сведению

Все методы управления объектом stream выполняются в фоновых задачах

Создание стрима

Для создания объекта stream необходимо вызвать API-метод create_stream. Создание стрима происходит в фоновой задаче с типом CREATE_STREAM. После успешного выполнения задачи создания стрима в поле task.result записывается id созданного объекта stream.

к сведению

Сразу после создания stream является активированным

Ссылки для отправки и просмотра стрима

После создания или обновления объекта stream для него генерируются поля stream.default_provider_urls и stream.default_publisher_urls.

  • default_provider_urls - список ссылок для стримера без каких-либо ограничений доступа
  • default_publisher_urls - список ссылок для просмотра стрима без каких-либо ограничений доступа

Данные ссылки рекомендуется использовать только для тестового запуска стрима, т.к. доступ к нему никак не закрыт от сторонних лиц.

Генерация подписанных ссылок

Для управления доступом к стримам как со стороны стримера, так и со стороны зрителя генерируются подписанные ссылки. Генерируемые подписанные ссылки не относятся к объекту stream и не хранятся в системе.

Рестриминг

Для отправки исходного потока на сторонние стриминговые сервисы необходимо воспользоваться API-методом запуска рестриминга start_stream_push_publishing для объекта stream. Доступные протоколы рестриминга: RTMP, SRT. Пример ссылок для рестримнга:

  • rtmp://example.com:1935/app/live
  • rtmp://example.com/app/live/stream
  • srt://example.com:9000/app?passphrase=12345qwert&mode=caller
  • srt://example.com:9000?streamid=#!::u=admin,m=request
примечание

При использовании рестриминга по протоколу SRT и стандартных query-параметров для параметра "mode" допускается использовать только значение "caller".

Для выключения рестриминга необходимо воспользоваться API-методом остановки рестриминга stop_stream_push_publishing.

примечание

Рестриминг не отключается и не удаляется при выключении родительского объекта stream с помощью API-метода disable_stream.
При последующем включении объекта stream и отправке потока на сервер Arviol рестриминг будет запущен автоматически.

Получить список текущих настроек для рестриминга можно API-методом get_stream_push_publishers.

Запись стрима

Включение и выключение записи стрима происходит при вызове методов start_stream_recording и stop_stream_recording для объекта stream. Получение подписанных ссылок на фрагменты записи доступно при обращении к методу get_stream_record_links

Рекомендуемые сценарии

Ниже представлены рекомендации по управлению объектами stream.

Первичное включение

  1. создать объект stream и дождаться выполнения фоновой задачи
  2. передать пользователю ссылки по умолчанию для отправки и просмотра стрима
  3. при необходимости запустить рестриминг на одну или несколько стриминговых площадок, включить запись стрима

Управление подписанными ссылками

Для полноценной защиты стрима от доступа к нему нежелательных третьих лиц рекомендуется предоставить клиентам API для оперативной генерации подписанных ссылок.

Например, доступ к плееру на сайте только для аутентифицированных зрителей. Для реализации данного доступа потребуется генерация ссылок просмотра для каждого пользователя сайта.

API-методы

Streams

Push publishing

Stream recording

Генерация подписанных ссылок