Streams API
В интерфейсе Astra вы можете управлять конфигурациями потоков и контролировать их статус с помощью HTTP API методов.
Конфигурация потока
Заголовок раздела «Конфигурация потока»{ "id": "...", "name": "...", "type": "...", "enable": true, "input": [ "" ]}name— имя потокаtype— тип потокаsptsилиmptsenable—true, если поток включёнinput— список входов потока- другие параметры зависят от конфигурации потока.
Получить конфигурацию потока
Заголовок раздела «Получить конфигурацию потока»Запрос: GET /api/stream-info/{id}
id— уникальный идентификатор потока
В ответе будет JSON с конфигурацией потока
Изменить конфигурацию потока
Заголовок раздела «Изменить конфигурацию потока»Запрос: POST /control/
{ "id": "...", "cmd": "set-stream", "stream": { ... }}id— уникальный идентификатор потокаstream— конфигурация потока
Включить/выключить поток
Заголовок раздела «Включить/выключить поток»Включение или отключение потока. Запрос: POST /control/
{ "cmd": "toggle-stream", "id": "..."}id— уникальный идентификатор потока
Перезапустить поток
Заголовок раздела «Перезапустить поток»Запрос: POST /control/
{ "cmd": "restart-stream", "id": "..."}id— уникальный идентификатор потока
Переключить активный вход
Заголовок раздела «Переключить активный вход»Выбор активного входа. Работает только для потоков с типами резервирования: passive или disable. Запрос: POST /control/
{ "cmd": "set-stream-input", "id": "...", "input": "..."}id— уникальный идентификатор потокаinput— номер входа. Нумерация начинается с 1. Если параметр не указан, будет выбран следующий вход после активного
Удалить поток
Заголовок раздела «Удалить поток»Запрос: POST /control/
{ "cmd": "set-stream", "id": "...", "stream": { "remove": true }}id— уникальный идентификатор потока
Получить статус потока
Заголовок раздела «Получить статус потока»Запрос: GET /api/stream-status/{id}
id— уникальный идентификатор потока
Необязательные параметры запроса: GET /api/stream-status/{id}?t={time}
time— по умолчанию1— статистика за последнюю минуту.0— статистика за последнюю секунду (текущий статус потока).
Ответ:
{ "timestamp": 0, "instance": "...", "name": "...", "input_id": 1, "active": true, "onair": true, "sessions": 0, "bitrate": 0, "packets": 0, "pes_error": 0, "sc_error": 0, "cc_error": 0, "video_count": 1, "audio_count": 1}timestamp— время отчёта, дляt=0— текущее времяinstance— имя экземпляра, если указано в Настройки → Общие → Имя экземпляраname— имя потокаinput_id— идентификатор активного входа. Например, если основной вход работает нормально, будет 1. Если поток переключился на резервный вход, будет номер этого входаactive—true, если поток активен, илиfalse, если поток работает по требованию и неактивенonair—true, если активный вход работает без ошибокsessions— количество активных сессий на потокеbitrate— битрейт потока в Кбит/сpes_error— количество некорректных PES-пакетовsc_error— количество зашифрованных TS-пакетов. Если поток защищён системой условного доступа (CAS), тоsc_errorиpes_errorбудут больше 0. Если поток расшифрован с неверным ключом, тоsc_errorбудет равен 0, аpes_errorбудет больше 0cc_error— счётчик ошибок CC. Ошибка CC может быть вызвана потерей или избытком пакетовvideo_count— количество видеопотоковaudio_count— количество аудиопотоков