Как создать свой 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;
}