Стриминг
Параметры стрима
Основными параметрами стрима являются выходной протокол 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.
Первичное включение
- создать объект
streamи дождаться выполнения фоновой задачи - передать пользователю ссылки по умолчанию для отправки и просмотра стрима
- при необходимости запустить рестриминг на одну или несколько стриминговых площадок, включить запись стрима
Управление подписанными ссылками
Для полноценной защиты стрима от доступа к нему нежелательных третьих лиц рекомендуется предоставить клиентам API для оперативной генерации подписанных ссылок.
Например, доступ к плееру на сайте только для аутентифицированных зрителей. Для реализации данного доступа потребуется генерация ссылок просмотра для каждого пользователя сайта.
API-методы
Streams
- create_stream
- get_stream
- get_streams
- update_stream
- delete_stream
- enable_stream
- disable_stream
- get_stream_stats