Документация на 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. Реклама

Как создать свой IPTV канал (плейлист)

Свой канал, или плейлист оператора Anchor Anchor x2

Flussonic позволяет IPTV оператору создавать свои собственные списки воспроизведения (серверные плейлисты) для вещания файлов и видео-потоков.

Например, вы можете создать информационный канал (инфоканал), который будет распространять важную информацию для абонентов и рекламировать новые услуги. Или можно создать канал для вещания фильмов.

По сути, собственный канал – это список воспроизведения со ссылками на источники вещания (файлы и видео-потоки), расположенные на Flussonic Media Server. Плейлист может запускаться по расписанию и он всегда проигрывается циклично по кругу.

В этом разделе мы покажем пример создания своего канала для проигрывания заранее подготовленных видеофайлов.

Для начала вещания необходимо:

  • подготовить контент (видео-файлы)
  • сформировать список для трансляции (плейлист)
  • создать поток, через который плейлист будет транслирован.

Затем можно настроить:

Создание плейлиста Anchor Anchor x2

Мы будем делать плейлист из файлов. Однако потоки добавляются в плейлист похожим образом, см. Серверные плейлисты.

Внимание. Файлы и другие источники должны быть идентичны по своим характеристикам: кодеки, разрешение, битрейт.

Шаг 1. Настройка места хранения файлов

1) Настроим путь до директории с видео-файлами (VOD локацию).

По умолчанию в конфигурационном файле /etc/flussonic/flussonic.conf уже есть локация с именем vod, которая указывает на путь /opt/flussonic/priv для размещения файлов.

Пример настройки по умолчанию:

# VOD locations:
file vod {
 path /opt/flussonic/priv;
}

либо:

# VOD locations:
file vod {
  path priv;
}

В примере мы используем директорию, указанную в vod. Если вы хотите разместить файлы в другом месте, то необходимо создать другую локацию или изменить путь, указанный в локации vod.

Другой способ создать VOD локацию – через веб-интерфейс.

2) Скопируйте в каталог на сервере файлы для трансляции.
В примере мы используем файлы bunny.mp4 и beepbop.mp4, которые уже есть в /opt/flussonic/priv/.

Шаг 2. Создание плейлиста

Плейлист — это текстовый файл со списком ссылок на источники вещания. Для редактирования плейлиста мы будем использовать nano, редактор для работы с текстовыми файлами в Linux-системах.

1) Чтобы установить nano, выполните в командной строке на сервере Flussonic команды:

apt-get update

и затем

apt-get install nano

2) Создайте файл playlist.txt в директории /opt/flussonic/priv с помощью команды:

nano /opt/flussonic/priv/playlist.txt

Файл сразу откроется в редакторе. Теперь добавьте в него ссылки на видеофайлы, которые будем вещать. Ссылка состоит из названия VOD-локации и имени файла:

vod/bunny.mp4
vod/beepbop.mp4

Чтобы выйти и сохранить изменения, нажмите CTRL + X и сохранитe изменения нажав y.

Шаг 3. Создание потока

1) В конфигурационный файл Flussonic /etc/flussonic/flussonic.conf добавим директиву stream NAME:

stream infochannel {
 url playlist:///opt/flussonic/priv/playlist.txt;
}

Создать статический поток можно и в веб-интерфейсе: Media > нажмите add возле Streams. Укажите имя потока (infochannel) и URL (playlist:///opt/flussonic/priv/playlist.txt).

О статических потоках см. в Live — потоковое вещание.

2) Если вы редактировали настройки через конфигурационный файл, то перечитайте конфигурацию сервера, выполнив в командной строке Linux команду:

service flussonic reload

В списке потоков Flussonic появится новый поток, который по кругу будет проигрывать указанные нами файлы. Можно увидеть его в веб-интерфейсе (Media > Streams) и проверить работу.

Логотип Anchor Anchor x2

Наш пример создания логотипа использует транскодер Flussonic и считается ресурсоемким. Логотип при этом будет неотделим от видео-дорожки. Для канала, вещаемого в IPTV сети, такой метод подходит.

Для логотипа необходим файл изображения в формате PNG. На сервере в директории /opt/flussonic/wwwroot/flu/images/ есть файл erly-small.png, который мы будем использовать в качестве примера наложения логотипа.

В созданный ранее поток infochannel добавим директиву transcoder и укажем в качестве логотипа файл erly-small.png:

stream infochannel {
  url playlist:///opt/flussonic/priv/playlist.txt;
  transcoder vb=2048k preset=fast logo=/opt/flussonic/wwwroot/flu/images/erly-small.png@10:10 ab=128k;
}

Перегрузите конфигурацию сервера, и логотип появится в верхнем левом углу экрана.

Подробнее о разных способах размещения логотипа написано в статье Наложение логотипа.

Расписание вещания Anchor Anchor x2

Откройте созданый ранее playlist.txt.

С помощью тега (управляющей команды) #EXTINF можно настроить продолжительность проигрывания элементов плейлиста.

Например, показывать первые 30 секунд одного файла и первые 60 секунд второго:

#EXTINF:30
vod/bunny.mp4
#EXTINF:60
vod/beepbop.mp4

С помощью тега #EXT-X-UTC можно задать Unix Timestamp того времени, когда надо начать проигрывать элемент плейлиста:

#EXT-X-UTC:1522839600
vod/bunny.mp4
#EXT-X-UTC:1522843200
vod/beepbop.mp4

С помощью тега #EXT-X-PROGRAM-DATE-TIME можно задать время начала вещания элемента плейлиста в формате ISO 8601:

#EXT-X-PROGRAM-DATE-TIME:2018-04-04T11:00:00Z
vod/bunny.mp4
#EXT-X-PROGRAM-DATE-TIME:2018-02-04T12:00:00Z
vod/beepbop.mp4

Подробнее о тегах в статье Серверные плейлисты.

Сделать канал доступным по UDP multicast Anchor Anchor x2

Добавим директиву push в настройки потока и укажем мультикаст-адрес для вещания в локальной сети:

stream infochannel {
  url playlist:///opt/flussonic/priv/playlist.txt;
  transcoder vb=2048k preset=fast logo=/opt/flussonic/wwwroot/flu/images/erly-small.png@10:10 ab=128k;
  push udp://239.0.0.1:1234;
}