В интерфейсе Astra можно управлять конфигурациями потоков и контролировать их состояние с помощью методов HTTP API.
::alert Настраиваемые параметры аналогичны тем, которые используются при настройке интерфейса Astra, подробнее о настройке этих параметров можно прочитать в соответствующих статьях. Подробнее ::
{
"id": "...",
"name": "...",
"type": "...",
"enable": true,
"input": [
""
]
}
name - название потокаtype - тип потока spts или mptsenable - true если поток включенinput - список входов потока::alert Версия: 2021-04-12 или более поздняя ::
Запрос: GET /api/stream-info/{id}
id - уникальный идентификатор потокаВ ответ будет получен JSON с конфигурацией потока
Запрос: POST /control/
{
"id": "...",
"cmd": "set-stream",
"stream": { ... }
}
id - уникальный идентификатор потокаstream - конфигурация потокаВключить/выключить поток. Запрос: POST /control/
{
"cmd": "toggle-stream",
"id": "..."
}
id - уникальный идентификатор потока::spoiler{title="Пример"} Включить или отключить поток можно, выполнив следующую команду:
curl \
-X POST \
-user login \
-d '{"cmd":"toggle-stream", "id":"a001"}' \
http://server:8000/control/
при успешном возврате Astra:
{ "toggle-stream": "ok" }
::
Запрос: POST /control/
{
"cmd": "restart-stream",
"id": "..."
}
id - уникальный идентификатор потока::spoiler{title="Пример"} Перезапустить поток можно, выполнив следующую команду:
curl \
-X POST \
-user login \
-d '{"cmd":"restart-stream", "id":"a001"}' \
http://server:8000/control/
при успешном возврате Astra:
{ "restart-stream": "ok" }
::
Выбор активного входа. Работает только для потоков со следующими типами резервного копирования: passive или disable. Запрос: POST /control/
{
"cmd": "set-stream-input",
"id": "...",
"input": "..."
}
id - уникальный идентификатор потокаinput - номер входа. Нумерация начинается с 1. Если опция не определена, то будет запущен следующий вход после активного входа::spoiler{title="Пример"} Переключить потоковый ввод можно, выполнив следующую команду:
curl \
-X POST \
-user login \
-d '{"cmd":"set-stream-input", "id":"a001", "input": 2}' \
http://server:8000/control/
при успешном возврате Astra:
{ "set-stream-input": "ok" }
::
Запрос: POST /control/
{
"cmd": "set-stream",
"id": "...",
"stream": {
"remove": true
}
}
id - уникальный идентификатор потока::alert Версия: 2021-04-12 или более поздняя ::
Запрос: 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 - количество аудиопотоков