Skip to content

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

На этой странице:

Как оператор IPTV/OTT вы можете создать свой FAST (Free Ad-Supported streaming TV) канал — бесплатный для зрителя ТВ-канал с рекламой. Например, информационный канал, который распространяет информацию для абонентов и рекламирует новые услуги, или канал для вещания фильмов. Такие каналы создаются из VOD-файлов и распространяются бесплатно, но монетизируются за счёт продажи рекламы.

FAST-канал с видеофайлами из локального VOD-хранилища вместо полученных по сети потоков:

  • Сэкономит веб-трафик.
  • Привлечёт новых абонентов. Зрители не платят за просмотр такого телеканала.

Note

Убедитесь, что вы соблюдаете права интеллектуальной собственности.

О серверном плейлисте в Flussonic

Собственный канал в Flussonic представляет собой список воспроизведения, или серверный плейлист, со ссылками на источники вещания — файлы и видеопотоки на сервере Flussonic. Серверный плейлист проигрывается циклично и может запускаться по расписанию.

Серверные плейлисты используются для решения следующих задач:

  • Вещание телеканала на десятки одновременных зрителей в локальной сети.
  • Переключения между потоками с камер, например, раз в минуту.
  • Создания платформы цифровой видеорекламы для показа информационных или рекламных роликов.

Недостатки серверных плейлистов

У серверных плейлистов есть ряд недостатков при их использовании в Интернете для вставки видео на сайт:

  • Невозможность использовать таргетинг при вставке рекламы.
  • Невозможность учитывать рекламу через AdRiver и другие подобные инструменты.
  • Сложность мультибитрейтной доставки: разные файлы могут иметь разное количество дорожек с битрейтом.
  • Технически сложно реализовать перемотку назад, а это — преимущество интернет-доставки по сравнению с эфирной.
  • Сложно реализовать паузу.

Из-за невозможности реализации адекватного инструмента учёта рекламы рекомендуется использовать клиентские плейлисты вместо серверных плейлистов. Так абонент IPTV сам формирует плейлист из доступных каналов.

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

Как сделать свой IPTV-телеканал из видеофайлов

Чтобы составить серверный плейлист из видеофайлов, следуйте шагам ниже:

1) Подготовьте видеофайлы для трансляции.
2) Настройте VOD-локацию загрузите видеофайлы.
3) Создайте серверный плейлист.
4) Создайте поток с источником playlist://.

Warning

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

Шаг 1. Подготовьте видеофайлы

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

Шаг 2. Настройте VOD-локацию

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

vod vod {
storage /opt/flussonic/priv;
}

либо

vod vod {
storage priv;
}

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

1) Загрузите в каталог на сервере видеофайлы для трансляции.

В примере используются файлы bunny.mp4 и beepbop.mp4, которые уже есть в /opt/flussonic/priv/.

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

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

1) Установите nano на сервер Flussonic, выполнив в командной строке следующие команды:

apt-get update && apt-get install nano

2) В одной директории с видеофайлами создайте плейлист playlist.txt с помощью следующей команды:

nano /opt/flussonic/priv/playlist.txt

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

vod/bunny.mp4
vod/beepbop.mp4

3) Сохраните изменения и выйдите из редактора, нажав CTRL + X и затем y.

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

1) Создайте статический поток в веб-интерфейсе, зайдя в раздел Media в меню навигации слева и нажав + возле вкладки Streams. Укажите имя потока Stream name и URL источника Source URL (if available). URL источника состоит из настройки playlist:// и пути до плейлиста. Например, playlist:///opt/flussonic/priv/playlist.txt, где /opt/flussonic/priv/playlist.txt — путь до плейлиста.

Вы также можете создать поток в конфигурационном файле /etc/flussonic/flussonic.conf или с помощью API-запроса Flussonic-API: PUT /streams/{name}.

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

service flussonic reload

В списке потоков Flussonic появится новый поток, который по кругу будет проигрывать указанные файлы.

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

Серверный плейлист из потоков похож на плейлист из видеофайлов за исключением того, что вместо видеофайлов VOD-локации указываются потоки.

Чтобы сделать серверный плейлист из потоков, выполните следующие шаги:

1) В каталоге VOD-локации создайте плейлист в виде текстового файла, указав в нём имена потоков на сервере Flussonic для вещания. Для управления расписанием вещания используйте управляющие команды. Пример плейлиста playlist.txt:

#EXTINF:60
cam1
#EXTINF:60
cam2

, где:

  • cam1 и cam2 — имена потоков на сервере Flussonic для вещания,
  • #EXTINF:60 — управляющая команда, задающая продолжительность проигрывания потока в секундах.

Плейлист выше последовательно воспроизводит потоки cam1 и cam2, переключаясь между потоками каждые 60 секунд.

2) В веб-интерфейсе создайте поток с источником playlist://, в котором укажите путь к плейлисту. Нажмите Save, чтобы сохранить настройки:

Flussonic playlist

Вы также можете создать поток в конфигурационном файле /etc/flussonic/flussonic.conf или с помощью API-запроса Flussonic-API: PUT /streams/{name}.

Управление расписанием вещания

Чтобы управлять расписанием в плейлисте, используйте следующие команды:

  • #EXT-X-MEDIA-SEQUENCE — номер первого элемента плейлиста. Используется для правильной ротации и обновления плейлиста.
  • #EXTINF — продолжительность в секундах проигрывания элемента плейлиста. Может использоваться для вставки прямого эфира.
  • #EXT-X-UTC — время в UTC, когда требуется начать проигрывание элемента плейлиста.
  • #EXT-X-PROGRAM-DATE-TIME — время начала проигрывания элемента плейлиста в формате ISO 8601: 2013-02-12T12:58:38Z по GMT.
  • #EXT-X-CUE-OUT:ID=SOME_ID — метка врезки рекламы, указывающая на начало блока рекламы.
  • #EXT-X-CUE-IN — метка врезки рекламы, указывающая окончание блока рекламы.

Примеры использования управляющих команд см. в разделе Примеры.

Note

После завершения проигрывания каждого видеофайла плейлист перечитывается.

Учитывайте следующие правила обработки плейлистов:

1) Если указана команда #EXT-X-MEDIA-SEQUENCE, то запоминается последний проигранный номер и после перечитывания плейлиста проигрывание продолжается со следующего номера. То есть содержимое нового плейлиста может быть любым, синхронизация будет осуществляться со следующего номера. Если в новом плейлисте все номера меньше, чем последний проигранный, то плейлист будет каждую секунду перечитывать файл, ожидая появления правильного номера.

2) Если команда #EXT-X-MEDIA-SEQUENCE не указана и сам файл плейлиста не менялся, то проигрывается следующий элемент. Если менялся, то проигрывание начинается сначала.

Примеры

  • С помощью управляющей команды #EXTINF можно настроить продолжительность проигрывания элементов плейлиста Например, показывать первые 30 секунд одного файла и первые 60 секунд второго:
#EXTINF:30
vod/bunny.mp4
#EXTINF:60
vod/beepbop.mp4
  • С помощью тега #EXT-X-UTC можно задать время в UTC начала проигрывания элемента плейлиста:
#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

Как настроить вставку рекламы для серверного плейлиста

Процесс создания серверного плейлиста для вставки рекламы в поток без меток схож с созданием плейлиста из видеофайлов за исключением следующего:

1) Требуется подготовить видеофайлы с контентом и рекламные ролики и загрузить их в VOD-локацию.

Warning

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

2) Название плейлиста должно оканчиваться на .onlyvod.m3u8. Например, ad_playlist.onlyvod.m3u8. Это включает механизм врезки рекламы.

3) Плейлист должен содержать метки начала (#EXT-X-CUE-OUT:ID=SOME_ID) и окончания (#EXT-X-CUE-IN) врезки рекламы. Пример плейлиста:

vod/film_1.mp4
#EXT-X-CUE-OUT:ID=126
vod/ad_1.mp4
vod/ad_2.mp4
#EXT-X-CUE-IN
vod/film_2.mp4
#EXT-X-CUE-OUT:ID=127
vod/ad_3.mp4
#EXT-X-CUE-IN
vod/film_3.mp4

В HLS- и DASH-плейлистах вы увидите SCTE-метки времени начала рекламы, например:

#EXT-OATCLS-SCTE35:/DAgAAAAAAAAAP/wDwUAAAB+f/8AABdmoAABAAAAAG1gDGA=
#EXT-X-CUE-OUT:DURATION=17.040

См. также: