Multiplexer¶
Multiplexer - это важнейший элемент всей системы для поставки телевидения в DVB сети.
Основные задачи¶
Он закрывает следующие задачи:
- Подготовка MPEG-TS потока с соблюдением требований DVB стандарта на CBR, PCR accuracy, HRD buffer и т.п.
- Упаковка нескольких телеканалов в MPTS с сохранением равномерности перемешивания телеканалов
- Формирование всех служебных таблиц: PAT, PMT, SDT, EIT, NIT необходимых для полноценного DVB сервиса
Пример настройки¶
transponder plp0 {
provider "Central TV";
bitrate 22600k;
ts_stream_id 1;
network 0x3578 original=0x2283 name="DTT - National TV";
time_offset RUS:10 time_of_change=2018-03-23T03:00:00Z local_time_offset=+0300 next_time_offset=+0300;
version psi 25;
ts_descriptor 0x7F 040022830325;
push udp://streaming0@238.238.31.1:1111 multicast_loop tos=0;
program 1010 {
source Switcher_1010_ort;
title "01 ORT";
eit_title Ort_(+0);
lcn 1;
service_type digital_tv_avc_sd;
pid 1010 pmt;
pid 1011 v1 pcr bitrate=2720 ;
pid 1012 a1 ;
pid 1014 l1 codec=ttxt ;
pid 1015 l1 codec=scte35 ;
pid 1016 bypass es_info=6F030010E1 stream_type=5;
pid 1017 bypass es_info=140D000B00000080000000FFFFFFFF52010B130500002F520066020123 stream_type=11;
pid 1018 bypass es_info=52010D stream_type=12;
}
program 1040 {
source Switcher_1040_04_Uchebniy;
title "04 Учебный";
eit_title Uchebniy_(+0);
lcn 4;
service_type digital_tv_avc_sd;
pid 1040 pmt;
pid 1041 v1 pcr bitrate=2750 ;
pid 1042 a1;
pid 1044 l1 codec=ttxt ;
pid 1045 l1 codec=scte35 ;
pid 1046 bypass es_info=6F030010E1 stream_type=5;
pid 1047 bypass es_info=140D000B00000080000000FFFFFFFF52010B130500002F520066020123 stream_type=11;
pid 1048 bypass es_info=52010D stream_type=12;
}
other @plp1;
eit {
source bypass://EIT_source_MUX1_plp0;
max_bitrate 300;
}
}
Детали настройки¶
Секции program¶
В конфигурации мультиплексора указаны секции program
- это отдельные телеканалы. Они должны ссылаться на стрим, заведенный в Mcaster.
Параметры программы¶
- title - название телеканала
- eit_title - опциональный заголовок, который уходит в EPG (Electronic Program Guide)
- lcn (Logical Channel Number) - порядковый номер в списке программ, передается в NIT таблицу
- service_type - тип сервиса, указывается в SDT таблице
Настройка PID¶
Список PID жесткий, фиксированный, не динамический и не будет меняться в зависимости от источника.
Опции PID¶
- pmt - в этом PID пойдет PMT таблица
- pcr - на этом PID будет маркироваться PCR (Program Clock Reference)
- codec - можно отдельно указать кодек PID
- bitrate - можно форсировать битрейт PID
- bypass - пиды, которые пробрасываются без демультиплексирования на входе
Параметры bypass PID¶
Для bypass PID можно указать параметры упаковки MPEG-TS:
- es_info - информация о элементарном потоке
- stream_type - тип потока
Дополнительные параметры¶
- other - позволяет ссылаться на другие мультиплексоры для формирования SDT
- eit - формирование EIT таблицы:
- Из файла
- Из стрима, в котором захватывается программа передач
Параметры мониторинга¶
Модуль предоставляет следующие параметры для мониторинга:
Основные метрики¶
- payload - количество байт полезной нагрузки (multiplexer_payload)
- encoded - количество закодированных байт (multiplexer_encoded)
- fillers - количество пакетов-заполнителей (multiplexer_fillers)
- stuffing - количество пакетов-наполнителей (multiplexer_stuffing)
Дополнительные метрики¶
- trimmed_bytes - количество обрезанных байт (multiplexer_trimmed_bytes)
- trimmed_frames - количество обрезанных кадров (multiplexer_trimmed_frames)
- ts_overflow - переполнение TS потока (boolean)
Служебные таблицы¶
Multiplexer формирует все необходимые служебные таблицы DVB:
- PAT (Program Association Table) - таблица ассоциации программ
- PMT (Program Map Table) - таблица карты программ
- SDT (Service Description Table) - таблица описания сервисов
- EIT (Event Information Table) - таблица информации о событиях
- NIT (Network Information Table) - таблица информации о сети
Требования DVB стандарта¶
Модуль обеспечивает соблюдение следующих требований:
- CBR (Constant Bit Rate) - постоянная скорость передачи
- PCR accuracy - точность Program Clock Reference
- HRD buffer - требования к буферу гипотетического декодера
- Равномерное перемешивание телеканалов в мультиплексе
Электронная программа передач (EPG)¶
Mcaster может генерировать MPTS потоки со встроенной электронной программой передач (EPG). Вам больше не нужно использовать дополнительный генератор EPG и ремультиплексор для добавления EPG к телеканалам.
В MPEG-TS потоках EPG хранится в таблицах информации о событиях (EIT). Mcaster может заполнять EIT в выходном потоке.
Два способа добавления EPG¶
Существует два способа для Mcaster добавить EPG в выходной MPTS:
- Копирование EIT из источника если программа передач в нем удовлетворительна
- Взятие EPG из XMLTV файлов и преобразование в EIT как для текущего мультиплексора (Actual), так и для других мультиплексоров в сети (Other)
Копирование EPG из источника¶
Для копирования EIT из исходного MPEG-TS потока добавьте опции EIT в конфигурацию мультиплексора:
transponder tp1 {
eit {
source copy://STREAMNAME;
}
}
Замените STREAMNAME
на имя исходного потока в конфигурации Mcaster.
Импорт EPG из XMLTV¶
Для импорта EPG из XMLTV файлов настройте мультиплексор следующим образом:
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
— устанавливает значение ID канала изchannel id
в XMLTV файлеeit_title
— устанавливает название канала изdisplay-name
в XMLTVxmltv_url
— устанавливает путь к директории с XMLTV файлами (может быть одним файлом)interval pf|schedule actual=<INTERVAL 1> other=<INTERVAL 2>
— устанавливает, как часто будут отправляться таблицы EIT
Перезагрузка EPG¶
Когда данные EPG обновляются в XMLTV файле, перезагрузите их с помощью API:
POST /streamer/api/v3/multiplexers/{name}/xmltv_upload
Важные замечания¶
- EPG упаковывается в целевой битрейт
- Версия EIT изменяется при обновлении расписания (число от 0 до 63)
- XMLTV файлы могут содержать пересекающиеся передачи - Mcaster включает более раннюю
- Интервалы по умолчанию:
actual
(текущая/следующая) 2 секунды,other
(текущая/следующая) 4 секунды,actual
(расписание) иother
(расписание) 60 секунд
Note
Описание формата XMLTV файла можно найти на xmltv.org, а расписания вещания в этом формате доступны на teleguide.info.