Документация на 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
    3. Скриншоты
    4. Мозаика
  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. Реклама

IPTV плагин

Во Flussonic Media Server есть встроенная простейшая Middleware. Основные возможности:

  • авторизация пользователей по уникальному токену;
  • ограничение одновременных подключений;
  • генерация m3u плейлиста для HLS и HTTP MPEG-TS;
  • управление пользователями через API;
  • скоро: пакетирование каналов (разделение доступа).

Управление осуществляется через административный интерфейс Flussonic Media Server, а база данных хранится в sqlite файле.

IPTV плагин подходит как для организации сервиса для многих сотен клиентов, так и раздачи потоков друзьям и партнерам.

Включение и настройка Anchor Anchor x2

В административном интерфейсе Flussoniс Media Server откройте вкладку «IPTV», на этой странице нужно указать путь к базе данных (или оставить значение по умолчению, это нормально).

Нажмите кнопку «Enable IPTV».

iptv

В конфигурационном файле /etc/flussonic/flussonic.conf включение IPTV плагина выглядит так:

erlang
# Plugins:

plugin iptv {
  database sqlite:///opt/flussonic/priv/iptv.db;
}

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

iptv

Для каждого пользователя можно задать лимит одновременных подключений, токен генерируется автоматически.

iptv

Для включения каналов достаточно просто нажать на их имя в списке.

iptv

Для генерации и экспорта m3u плейлистов для HLS и HTTP MPEG-TS нажмите кнопки HLS и MPEG-TS.

iptv

Работа с API Anchor Anchor x2

С помощью API можно управлять пользователями: создавать, обновлять, удалять, просматривать список.

API предельно простое и интегрировать с вашим сайтом не составит труда. Ниже примеры запросов и ответов сервера.

Список пользователей

Запрос:

curl -u flussonic:letmein 127.0.0.1/tv/api/users

Ответ:

{"host":"http://127.0.0.1","users":[{"created_at":null,"email":"user1@example.com","id":13,"key":"RLSxaTkbq1","max_sessions":1,"name":"user1","packages":null,"updated_at":null},{"created_at":null,"email":"user2@example.com","id":14,"key":"lyAcdcYcs1","max_sessions":99,"name":"user2","packages":null,"updated_at":null}],"users_count":2,"users_total":2}

Создание пользователя

Запрос:

curl -u flussonic:letmein --data-binary '{"name":"flussonic","email":"support1@erlyvideo.org","max_sessions":"3"}' 127.0.0.1/tv/api/user_create

Ответ:

{"created_at":null,"email":"support1@erlyvideo.org","id":10,"key":"r5Z2KTpsp3","max_sessions":3,"name":"flussonic","packages":[],"updated_at":null}

Изменение пользователя

Запрос:

curl -u flussonic:letmein --data-binary '{"created_at":null,"email":"support3@erlyvideo.org","id":10,"key":"newtoken","max_sessions":3,"name":"support","packages":null,"updated_at":null}' 127.0.0.1/tv/api/user_update

Ответ:

{"created_at":null,"email":"support3@erlyvideo.org","id":10,"key":"newtoken","max_sessions":3,"name":"support","packages":[],"updated_at":null}

Удаление

Запрос:

curl -u flussonic:letmein --data-binary '{"created_at":null,"email":"user1@example.com","id":11,"key":"mPSfFitQl3","max_sessions":1,"name":"user1","packages":[],"updated_at":null}' 127.0.0.1/tv/api/user_delete

Ответ:

true

Мульти-авторизация Anchor Anchor x2

Плагин является частным случаем авторизационного бэкенда. Про механизм авторизации сессий во Flussonic Media Server можно прочитать по ссылке.

Это означает, что он совместим с другими http-бэкендами, например, Stalker. Подробнее про мультиавторизации можно прочитать на странице, адрес плагина http://127.0.0.1/tv/auth.