A. Описание JSON-RPC API

A.1 Описание методов JSON-RPC API

get_stream_list

Получает список потоков.

Возвращает список объектов со следующими полями:

Название Тип Описание
id int Номер потока
name str Имя потока
enabled bool true, если поток активен
src-index int Порядковый номер используемого источника
autostart bool true, если включен запуск потока на старте micromanager
timeout int Время в секундах, через которое поток будет остановлен после запуска
stop-timestamp int Время в формате UNIX-timestamp, в которое поток будет остановлен
src str Адрес текущего источника
uptime int Время непрерывной работы в секундах
bitrate int Текущий битрейт в байтах в секунду
state str Статус потока.

Возможные значения поля state:

  • NOT_RUNNING;
  • RUNNING;
  • NO_STREAM_DATA;
  • NO_PLAYLIST;
  • NOT_SEGMENTING;
  • INCORRECT_CONFIG;
  • UNKNOWN.

start_stream

Запускает поток.

Параметры:

  • id - номер потока, тип int.

Возвращает строку с результатом вызова метода. Возможные значения:

  • stream started;
  • bad stream id.

stop_stream

Останавливает поток.

Параметры:

  • id - номер потока, тип int.

Возвращает строку с результатом вызова метода. Возможные значения:

  • stream stopped;
  • bad stream id.

reboot_stream

Перезапускает поток.

Параметры:

  • id - номер потока, тип int.

Возвращает строку с результатом вызова метода. Возможные значения:

  • stream rebooted;
  • bad stream id.

switch_source

Переключает источник потока.

Параметры:

  • id - номер потока, тип int.

Возвращает строку с результатом вызова метода. Возможные значения:

  • transcoding source switched;
  • no more sources;
  • bad stream id.

get_statistics

Получает статистику работы micromanager.

Возвращает объект со следующими полями:

Название Тип Описание
pid int PID процесса micromanager
streams-count int Общее количество видеопотоков
running-count int Количество запущенных видеопотоков
threads-count int Количество запущенных вычислительных потоков в процессе micromanager
mem-usage int Количество ОЗУ, потребляемое процессом micromanager и процессами видеопотоков в МиБ
cpu-usage float загрузка CPU процессом micromanager и процессами видеопотоков
uptime int Время непрерывной работы процесса micromanager в секундах
bitrate int Суммарный битрейт всех запущенных видеопотоков
result str Всегда равно “success”

get_config

Запрашивает конфигурацию в виде JSON-объекта.

Коды ошибок:

Код Описание
201 Файл конфигурации не задан
224 Ошибка чтения файла конфигурации

set_config

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

Параметры:

Название Тип Описание Обязательный Ограничения
config obj Конфигурация в виде JSON-объекта Да  

Возвращаемое значение всегда равно “ok”.

Коды ошибок:

Код Описание
100 Отсутствует объект params
101 Пропущен параметр config
109 Некорректная кофигурация
220 Ошибка резервного копирования файла конфигурации
221 Ошибка записи конфигурации
222 Ошибка применения новой конфигурации, предыдущая восстановлена из резервной копии
223 Ошибка применения новой конфигурации и восстановления предыдущей из резервной копии

get_asset_meta

Запрашивает подробную информацию об ассете.

Параметры:

Название Тип Описание Обязательный Ограничения
path str Относительный путь до файла Да  

Возвращает список объек со следующими полями (все поля имеют строковый тип):

Название Тип Описание
size str Размер файла в байтах
length str Длина в секундах
bit-rate str Средний битрейт
format-name str Краткое имя контейнера или формата
format-long-name str Полное имя контейнера или формата
streams array Cписок потоков

Объекты списка streams имеют следующие поля:

Название Тип Описание
type str Тип потока
codec-name str Краткое имя кодека
codec-long-name str Полное имя кодека
language str Язык

Коды ошибок:

Код Описание
101 Параметр path пропущен или пуст
201 Ошибка получения информации об ассете

get_asset_files

Запрашивает список ассетов.

Параметры:

Название Тип Описание Обязательный Ограничения
offset int Номер элемента, с которого надо начинать список Нет Не меньше нуля
limit int Максимальный размер списка Нет Не меньше нуля
filter str Строка поиска по именам ассетов Нет  

Возвращает список объектов со следующими полями:

Название Тип Описание
file-name str Относительный путь до ассета

asset_delete

Удаляет ассет.

Параметры:

Название Тип Описание Обязательный Ограничения
path str Относительный путь до файла Да  

Возвращаемое значение всегда равно “success”.

Коды ошибок:

Код Описание
101 Параметр path пропущен или пуст
201 Ошибка удаления acctnf (см. поле message).

delete_file_from_ingest_directory

Удаляет файл из директории ожидания.

Параметры:

Название Тип Описание Обязательный Ограничения
path str Относительный путь до файла Да  

Возвращаемое значение всегда равно “success”.

Коды ошибок:

Код Описание
101 Параметр path пропущен или пуст
201 Ошибка удаления файла (см. поле message).

get_ingestion_status

Получает статус инжестирования.

Примечание: информация о состоянии выполняемых задач обновляется раз в пять секунд.

Возвращает список объектов со следующими полями:

Название Тип Описание
task-id int Идентификатор задачи.
source-file-name str Относительный путь до исходного файла
target-file-name str Относительный путь до инжестированного файла
running bool true, если процесс инжестирования активен
completed bool true, если процесс инжестирования завершён
bitrate int Текущий битрейт в байтах
fps float Cкорость инжестирования в кадрах
frame int Текущий кадр
file-size int Текуший размер инжестируемого файла в КиБ
src-file-size int Размер исходного файла в КиБ
mem-used int Количество оперативной памяти, используемой процессом инжестирования в КиБ
cpu-load float Загрузка процессора процессом инжестирования
failed bool true, если процесс инжестирования или дистрибьюции завершён из-за ошибки
error-string str Cообщение об ошибке, либо причина отмены задачи; если статус не равен FAILED или CANCELED то содержит пустую строку
status str Текущий статус задачи.

Возможные значения поля status:

  • WAITING;
  • STARTING;
  • ACTIVE;
  • COMPLETED;
  • FAILED;
  • CANCELED.

get_distribution_status

Получает статус дистрибьюции.

Примечание: информация о состоянии выполняемых задач обновляется раз в пять секунд.

Возвращает список объектов со следующими полями:

Название Тип Описание
task-id int Идентификатор задачи.
source-file-name str Относительный путь до ассета
running bool true, если процесс дострибьюции запущен и активен
processed int Количество обработанных адресов
mem-used int Количество оперативной памяти, используемой процессом в КиБ
cpu-load float Загрузка процессора процессом дистрибьюции
error-string str Cообщение об ошибке, либо причина отмены задачи; если статус не равен FAILED или CANCELED то содержит пустую строку
status str Текущий статус задачи.

Возможные значения поля status:

  • WAITING;
  • STARTING;
  • ACTIVE;
  • COMPLETED;
  • FAILED;
  • CANCELED.

cancel_task

Отменяет задачу.

Параметры:

Название Тип Описание Обязательный Ограничения
id int Идентификатор задачи Да Не меньше нуля.

Возвращаемое значение всегда равно “ok”.

ingest_file

Инжестирует файл.

Параметры:

Название Тип Описание Обязательный Ограничения
path str Относительный путь до файла в директории инжестирования Да  
preset_name str Имя пресета Да  
run_cmd str Шаблон команды запуска Нет  
naming_template str Шаблон имени файла Нет  
delete_after bool если true, удаляет файл после успешного инжестирования и успешной дистрибьюции (если дистрибьюция включена в параметрах micromanager); по умолчанию false Нет  

Примечание: если указаны, и имя пресета, и шаблон команды запуска или имени файла, то парметры, заданные в пресете, имеют меньший приоритет. Также, если в выбранном пресете отсутствуют какие-либо параметры, то будут взяты значения пресета по-умолчанию.

Примечание 2: если значение preset_name равно default, то будет выбран пресет по-умолчанию.

Возвращаемое значение - объект со следующими параметрами:

Название Тип Описание
file str Относительный путь до ассета после инжестирования
id int Идентификатор задачи.

Коды ошибок:

Код Описание
101 Параметр path пропущен или пуст
110 Не найден пресет с таким именем

distribute_file

Добавляет задачу дострибьюции.

Параметры:

Название Тип Описание Обязательный Ограничения
path str Относительный путь до файла в директории ассетов Да  
preset_name str Имя пресета Да  
delete_after bool если true, удаляет файл после успешного инжестирования и успешной дистрибьюции (если дистрибьюция включена в параметрах micromanager); по умолчанию false Нет  

Примечание: если в выбранном пресете отсутствуют какие-либо параметры, то будут взяты значения пресета по-умолчанию.

Примечание 2: если значение preset_name равно default, то будет выбран пресет по-умолчанию.

Возвращаемое значение - объект со следующими параметрами:

Название Тип Описание
id int Идентификатор задачи.

Коды ошибок:

Код Описание
101 Параметр path пропущен или пуст
110 Не найден пресет с таким именем

get_presets

Запрашивает список пресетов.

Возвращает объект со следующими полями:

Название Тип Описание
default str Шаблон команды запуска, используемый по умолчанию
default-naming-template str Шаблон имени файла, используемый по умолчанию
default-distribution-template str Шаблон команды дистрибьюции, используемый по умолчанию
presets array Список пресетов в том же виде, в котором он задан в конфигурации

get_waiting_files

Запрашивает список файлов в директории ожидания.

Параметры:

Название Тип Описание Обязательный Ограничения
offset int Номер элемента, с которого надо начинать список Нет Не меньше нуля
limit int Максимальный размер списка Нет Не меньше нуля
filter str Строка поиска по именам файлов Нет  

Возвращает список объектов со следующими полями:

Название Тип Описание
file-name str Относительное имя файла
target-file-name   Относительное имя ассета после инжестирования с шаблоном именования по умолчанию

is_alive

Запрашивает данные о доступности и загруженности видеосервера.

Возвращает объект со следующими полями:

Название Тип Описание
is_alive bool true, если значение score не превышает максимальное
score float Оценка загруженности сервера