API потока

В интерфейсе Astra можно управлять конфигурациями потоков и контролировать их состояние с помощью методов HTTP API.

::alert Настраиваемые параметры аналогичны тем, которые используются при настройке интерфейса Astra, подробнее о настройке этих параметров можно прочитать в соответствующих статьях. Подробнее ::

Конфигурация потока

{
    "id": "...",
    "name": "...",
    "type": "...",
    "enable": true,
    "input": [
        ""
    ]
}
  • name - название потока
  • type - тип потока spts или mpts
  • enable - true если поток включен
  • input - список входов потока
  • остальные опции зависят от конфигурации потока.

Получить конфигурацию потока

::alert Версия: 2021-04-12 или более поздняя ::

Запрос: GET /api/stream-info/{id}

  • id - уникальный идентификатор потока

В ответ будет получен JSON с конфигурацией потока

Изменение конфигурации потока

Запрос: POST /control/

{
    "id": "...",
    "cmd": "set-stream",
    "stream": { ... }
}
  • id - уникальный идентификатор потока
  • stream - конфигурация потока

Toggle 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 будет больше 0
  • cc_error - Счетчик ошибок CC. Ошибка CC может быть вызвана потерей пакетов или их избытком
  • video_count - количество видеопотоков
  • audio_count - количество аудиопотоков