Skip to content

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

либо:

# VOD locations:
vod 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 {
 input 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) и проверить работу.

Логотип

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

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

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

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

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

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

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

Откройте созданый ранее 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

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

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