Добавление EPG в MPTS¶
Flussonic может формировать MPTS с встроенным в него электронным расписанием передач EPG (Electronic Program Guide). При этом вам не потребуется генератор EPG и ремультиплексор, чтобы добавлять расписание к программам.
В MPEG-TS потоках EPG записывается в таблицы служебной информации транспортного потока Event Information Tables (EIT). Flussonic умеет формировать EIT в выходном потоке.
Flussonic может добавить EPG в выходной MPTS двумя способами:
- Копировать EIT из источника, если имеющаяся там программа передач вас устраивает.
-
Забирать расписание из файлов в формате XMLTV и конвертировать его в таблицы EIT. В транспортный поток передаётся EIT как для текущего мультиплексора (Actual) так и для других (Other). EPG упаковывается в нужный битрейт, и в UDP мультикаст уходит поток с готовым расписанием.
Описание формата файла можно посмотреть на xmltv.org, а программа в этом формате доступна на teleguide.info.
Копирование EPG из источника¶
Чтобы скопировать EIT из входного MPEG-TS потока, добавьте в конфигурацию мультиплексора опции EIT следующим образом:
transponder tp1 {
eit {
source copy://STREAMNAME;
}
}
Вместо STREAMNAME
укажите имя исходного потока в Flussonic.
Импорт EPG из XMLTV¶
Как настроить импорт EPG в мультиплексор:
- В настройки мультиплексора нужно добавить опции EIT для импорта EPG из XMLTV файлов.
- При каждом обновлении данных в XMLTV файле необходимо перезагрузить файл в мультиплексор API командой.
- Если номер версии 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, а более позднюю исключит.