Документация на Flussonic Media Server

  1. Быстрый старт
  2. How-to
  3. Потоковое вещание
    1. Варианты источников
    2. Переключение источников
    3. Публикация на Flussonic
    4. Прием мультикаста
    5. Серверные плейлисты
    6. Микширование
    7. Захват с SDI
    8. Отправка на другие серверы
    9. Распознавание DVB субтитров
    10. Наложение логотипа
  4. Транскодер
    1. Логотип
    2. Hardware (Nvidia NVENC)
    3. Hardware (Intel Quick Sync Video)
    4. Скриншоты
    5. Мозаика
  5. DRM
    1. Simple CAS
    2. Conax DRM
    3. BuyDRM (KeyOS)
    4. Widevine
    5. PallyCon
    6. EzDRM
  6. Авторизация
    1. Конструктор бэкендов
    2. Сервис сбора статистики
    3. Domain lock
    4. Middleware
    5. Secure links
    6. Ограничение сессий
    7. Мультиавторизация
    8. Бан IP адресов
    9. DVR
    10. Aliaser
  7. API
    1. HTTP API
    2. Events API
    3. MySQL API
    4. SQL API для кластеров
    5. SNMP
  8. Кластер
    1. Ретрансляция
    2. Кластерный захват
    3. Балансировщик нагрузки
    4. Пиринг
    5. Организация CDN
  9. VOD
    1. Кэш
    2. Облако
    3. Транскодирование файлов
    4. Мультибитрейтный VOD из файлов
  10. DVR
    1. Настройка
    2. Timeshift
    3. Catchup
    4. Проигрывание
    5. Экспорт в MP4
    6. Доступ по протоколам
    7. Timelapse
    8. API
    9. Кластеризация DVR
    10. Репликация
    11. Облако
  11. Воспроизведение
    1. HLS
    2. embed.html
    3. HTML5 с низкой задержкой
    4. Плеер HTML5 с низкой задержкой
    5. MPEG-TS
    6. RTMP
    7. DASH
    8. HDS
    9. RTSP
    10. Multicast
    11. Multicast с постоянным битрейтом
    12. WebRTC
    13. H.265
  12. Администрирование
    1. Установка
    2. Обновление
    3. Конфигурация
    4. Мониторинг
    5. Производительность
    6. Лицензия
    7. LUA скрипты
    8. Безопасность
    9. Let's Encrypt
    10. Миграция
  13. IPTV
    1. Захват спутникового видео
    2. Транскодирование
    3. Middleware в IPTV OTT
    4. Экспорт EPG со спутника
    5. Группы каналов
    6. Реклама

Изменение конфигурации сервера передачей JSON объекта

Измененить настройки сервера Flussonic можно отправкой JSON объектов в HTTP API вызовах.

Изменение конфигурации сервера передачей JSON объекта (modify_config) Anchor Anchor x2

Вызов modify_config — это часть HTTP API, позволяет редактировать фрагмент конфигурационного файла Flussonic и сохранять изменения.

URL запроса: /flussonic/api/modify_config

Параметры:

  • HTTP request payload (обязательный параметр) — JSON объект с фрагментом конфигурации. Этот фрагмент заменит или будет добавлен в существующую конфигурацию.

Ответ: Новая полная конфигурация сервера в формате JSON.

На вход передаётся конфиг в виде JSON. Передаваемый конфиг объединяется с рабочим конфигом на сервере, и результат сохраняется на диск в текстовый файл /etc/flussonic/flussonic.conf.

Обратите внимание, что передаётся лишь разница между старым конфигом и новым.

Поля в передаваемом объекте соответствуют параметрам текстового файла с конфигурацией. Группы объектов, такие как потоки и префиксы публикации, группируются внутри полей "streams" и "lives". Значение некоторых параметров тоже представляет собой объект, а не строку.

Для того, чтобы удалить параметр, надо задать ему значение null.

Как правильно указывать параметры в JSON формате

Узнать, как именно должен быть представлен в виде JSON какой-то определённый параметр, можно с помощью вызова API read_config, который покажет существующую конфигурацию Flussonic.

Пример. Авторизация

Допустим, уже включена глобальная авторизация, http backend с дополнительно передаваемым параметром:

auth http://localhost:4567/auth secret=xyz;

Мы хотим вместо этого использовать скрипт myscript.lua, и передавать ему ещё один параметр mykey=123 в дополнение к secret=xyz.

Для этого надо передать такой JSON объект:

{"auth": {"url": "myscript.lua", "extra": {"mykey": "123"}}}

В результате в конфиге сохранится:

auth myscript.lua mykey=123 secret=xyz;

Чтобы отключить авторизацию, надо передать {"auth": null}.

Пример. Операции с потоками

Доступ к настройкам потока происходит через поле "streams", которому передаётся объект с потоками. Название потока является ключом.

Например, надо явно отключить авторизацию на потоке channel_01. Для этого надо задать URL false:

'{"streams": {"channel_01": {"auth": {"url": false}}}}'

В результате в настройки этого потока попадёт параметр auth со значением false:

stream channel_01 {
   url hls://myvideo.com/mylive;
   auth false;
   ...
}

Источников у потока может быть несколько, поэтому они представлены в виде массива "urls":

{"streams":
  {"channel_01":
    {"urls": [{"url": "tshttp://example.com/mystream"},
              {"url": "udp://239.1.1.1:1234"}
   ]}}}

Как удалить поток:

'{"streams" : {"channel_01" : null}}'

Покажем пример запроса на удаление потока через curl:

curl -d '{"streams" : {"test1" : null}}' http://ADMIN:PASSWORD@FLUSSONIC:8080/flussonic/api/modify_config