Skip to content

Добавление EPG в MPTS

Flussonic может формировать MPTS с встроенным в него электронным расписанием передач EPG (Electronic Program Guide). При этом вам не потребуется генератор EPG и ремультиплексор, чтобы добавлять расписание к программам.

В MPEG-TS потоках EPG записывается в таблицы служебной информации транспортного потока Event Information Tables (EIT). Flussonic умеет формировать EIT в выходном потоке.

Есть два способа добавить EPG в выходной MPTS:

Копирование EPG из источника

Чтобы скопировать EIT из входного MPEG-TS потока, добавьте в конфигурацию мультиплексора опции EIT следующим образом:

transponder tp1 {
  eit {
    source copy://STREAMNAME;
  }
}

Вместо STREAMNAME укажите имя исходного потока в Flussonic.

Импорт EPG из XMLTV

Как настроить импорт EPG в мультиплексор:

  1. В настройки мультиплексора нужно добавить опции EIT для импорта EPG из XMLTV файлов.
  2. При каждом обновлении данных в XMLTV файле необходимо перезагрузить файл в мультиплексор API командой.
  3. Если номер версии EIT хранится в отдельном файле, то при каждом обновлении данных в XMLTV файле может потребоваться обновить номер версии в файле.

Настройка мультиплексора для передачи EPG

Рассмотрим пример:

transponder tp1 {
  program 100 {
    title "program1"; 
    eit_title "example_title";
  };
  other @tp2;
  eit {
        xmltv_url xmltv_dir1;
        interval pf actual=1 other=2;
        interval schedule other=20;
  }
}

, где:

  • title — идентификатор канала, в котором указывается значение channel id из XMLTV.
  • eit_title — имя ТВ-канала в XMLTV-файле. Чтобы связать ТВ-программу из XMLTV-файла с конкретным потоком в MPTS, необходимо указать значение eit_title равное display-name в XMLTV.
  • xmltv_url — путь к каталогу c XML файлами. Может быть просто именем файла, например, xmltv_url /path/to/xmltv.xml.
  • interval pf|schedule actual=<INTERVAL 1> other=<INTERVAL 2> — периодичность отправки таблиц. Расписание передаётся в двух таблицах: текущая/следующая передача (pf) в одной таблице и расписание на несколько дней (schedule) — в другой.

    • pf — периодичность отправки EIT для present/following (текущая/следующая передача), в секундах.
    • schedule — периодичность отправки для schedule (расписание на несколько дней), в секундах.
    • actual — периодичность для программ, передаваемых данным мультиплексором (в примере это tp1).
    • other — периодичность для программ, передаваемых другим мультиплексором в сети, указанным в опции other (в примере это tp2).

    Если установить interval равный 0, таблица передаваться не будет.

    По умолчанию интервал отправки для actual (present/following) — 2 c, other (present/following) — 4 c, actual (schedule) и other (schedule) — 60 c.

Note

Чтобы передавать большой объем данных EPG, можно увеличить interval и/или уменьшить количество программ.

Перезагрузка расписания в мультиплексор

При обновлении данных расписания в файле их необходимо передать в мультиплексор.

Для того, чтобы Flussonic загрузил обновлённые XMLTV данные из каталога xmltv_url, нужно выполнить вызов API: Flussonic-API: POST /streamer/api/v3/multiplexers/{name}/xmltv_upload

Для нашего примера:

/streamer/api/v3/multiplexers/tp1/xmltv_upload

Версия EIT таблицы

При обновлении расписания у EIT меняется версия — число от 0 до 63.

Замечания

Файл XMLTV с сайта teleguide.info может содержать перекрывающиеся по времени передачи. Если такое встречается, то Flussonic более раннюю передачу добавит в EPG, а более позднюю исключит.