Как создать свой IPTV канал (плейлист)
Свой канал, или плейлист оператора
Flussonic позволяет IPTV оператору создавать свои собственные списки воспроизведения (серверные плейлисты) для вещания файлов и видео-потоков. Трансляция видеофайлов из локального VOD-хранилища вместо полученных по сети потоков может помочь вам сэкономить веб-трафик, однако помните о том, что нужно соблюдать права интеллектуальной собственности.
Например, вы можете создать информационный канал (инфоканал), который будет распространять важную информацию для абонентов и рекламировать новые услуги. Или можно создать канал для вещания фильмов.
По сути, собственный канал – это список воспроизведения со ссылками на источники вещания (файлы и видео-потоки), расположенные на Flussonic Media Server. Плейлист может запускаться по расписанию и он всегда проигрывается циклично по кругу.
На этой странице вы узнаете, как:
См. также:
- Наложение логотипа — о том, как наложить свой логотип поверх видео.
- Рассылка мультикаста — о том, как сделать свой канал доступным в локальной сети по протоколу UDP.
Применение серверных плейлистов
Серверные плейлисты разумно использовать для:
- одновременного вещания канала на множество абонентов в локальной сети
- переключения между потоками с разных камер, например, раз в минуту
- создания платформы цифровой видеорекламы для показа информационных или рекламных роликов.
Создание плейлиста из файлов
В этом разделе показано, как сделать плейлист из файлов. Однако потоки добавляются в плейлист похожим образом, см. ниже.
Caution
Файлы и другие источники должны быть идентичны по своим характеристикам: кодеки, разрешение, битрейт.
Шаг 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 есть потоки: cam1, cam2, и плейлист camplaylist:
stream cam1 {
input fake://fake;
}
stream cam2 {
input fake://fake;
}
stream camplaylist {
input playlist:///storage/playlist1.txt;
}
В плейлисте playlist1.txt запишем имена потоков:
#EXTINF:60
cam1
#EXTINF:60
cam2
Мы создали список воспроизведения, который последовательно воспроизводит cam1 и cam2, переключаясь между потоками каждые 60 секунд.
Расписание вещания
Плейлист поддерживает управляющие команды для управления расписанием вещания:
#EXT-X-MEDIA-SEQUENCE
— номер первого элемента плейлиста. Используется для правильной ротации и обновления плейлиста.#EXTINF
— продолжительность в секундах проигрывания элемента плейлиста. Может использоваться для вставки прямого эфира.#EXT-X-UTC
— Unix Timestamp того времени, когда надо начать проигрывать элемент плейлиста#EXT-X-PROGRAM-DATE-TIME
— время начала проигрывания элемента плейлиста в формате ISO 8601:2013-02-12T12:58:38Z
по GMT.
После завершения каждого файла плейлист перечитывается.
Надо учитывать следующие правила обработки плейлистов:
- Если указана опция
EXT-X-MEDIA-SEQUENCE
, то запоминается последний проигранный номер и после перечитывания проигрывание продолжается со следующего номера. То есть содержимое нового плейлиста может быть любым, синхронизация будет осуществляться со следующего номера. Если в новом плейлисте все номера меньше, чем последний проигранный, то плейлист будет каждую секунду перечитывать файл, ожидая появления правильного номера; - Если опция
EXT-X-MEDIA-SEQUENCE
не указана и сам файл плейлиста не менялся, то проигрывается следующий элемент. Если менялся, то проигрывание начинается с начала. Откройте созданый ранее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
Недостатки серверных плейлистов
Серверные плейлисты имеют ряд недостатков при их использовании в Интернете для вставки видео на сайт:
- невозможность использовать таргетинг при вставке рекламы;
- невозможность учитывать рекламу через adriver и другие подобные сети;
- сложность сделать мультибитрейтной доставки: разные файлы могут иметь разное количество разных битрейтов;
- технически неоправданно сложно делать отмотку назад, а это одно из основных преимуществ интернет-доставки по сравнению с эфирной;
- пауза слишком сложна в реализации.
Невозможность реализации адекватной системы учета рекламы сводит на нет все желание использовать серверные плейлисты. Поэтому вместо серверных плейлистов рекомендуется использовать клиентские плейлисты, когда абонент IPTV сам формирует плейлист из доступных каналов.
Однако серверные плейлисты можно использовать в других случаях. Практика показывает, что пользователям приятнее смотреть то, что им предлагают, а не искать самим.