Настройка выходного MPEG-TS¶
Все выходы MPEG-TS одного потока — HTTP-раздача, SRT, пуши по UDP, SRT и RIST — формирует один мультиплексор. Секция mpegts у потока задаёт его служебные таблицы: номер программы, PID дорожек, описание сервиса в SDT. Такая же секция у отдельного выходного канала переопределяет эти значения только для него: разные приёмники получают один и тот же поток под разными номерами программ и PID.
Секция mpegts у потока¶
streams:
- name: tv1
inputs:
- udp: {host: 239.0.0.1, port: 5000}
mpegts:
pnr: 1030
pmt_pid: 1000
service_name: TV One
provider_name: Example Media
pids:
v1: 1011
a1: 1012
Все параметры необязательны; незаданное поле означает умолчание сервера:
| Параметр | Что задаёт | Умолчание |
|---|---|---|
pnr |
номер программы: запись в PAT, program_number PMT и service_id SDT |
1 |
pmt_pid |
PID таблицы PMT | подбирается автоматически |
pids |
явные PID дорожек по их именам: v1, a1, … |
подбираются автоматически |
service_name |
имя сервиса в SDT | имя потока |
provider_name |
имя провайдера в SDT | пустая строка |
ts_stream_id |
transport_stream_id в PAT и заголовке SDT |
1 |
onid |
original_network_id в заголовке SDT |
1 |
Правила, которые проверяются при сохранении конфигурации:
- PID — из диапазона 32–8190; значения ниже зарезервированы за служебными таблицами, выше — за null-пакетами;
- повторы PID внутри секции запрещены, включая совпадение PID дорожки с
pmt_pid; pnrне бывает нулём — нулевой номер программы в PAT зарезервирован за NIT;- имена сервиса и провайдера вместе ограничены так, чтобы SDT помещалась в один TS-пакет.
Запись в pids для дорожки, которой в потоке сейчас нет, допустима: она сработает, когда дорожка появится. Если явно заданный PID конфликтует с автоматически назначенным PID другой дорожки, явное значение побеждает, а вытесненная дорожка детерминированно переезжает на свободный PID — с предупреждением в логе.
SDT¶
Вместе с PAT и PMT в выходной поток входит таблица SDT (PID 0x11): один сервис с типом digital television, service_id равен pnr, имена сервиса и провайдера — из секции mpegts. Строки кодируются по DVB: латиница уходит как есть, остальное — как UTF-8 с объявлением кодировки, поэтому кириллические имена корректно читаются приёмниками.
При изменении настроек версии затронутых таблиц PAT/PMT/SDT увеличиваются, и приёмники штатно подхватывают новые таблицы. Правка секции mpegts применяется на лету: пуши и подключённые клиенты не переподключаются.
Свои настройки у выходного канала¶
Ту же секцию mpegts принимают отдельные выходные каналы:
- пуш по UDP, SRT или RIST — у RTMP нет MPEG-TS, поэтому с транспортом
rtmpсекция не сочетается; srt_play— раздача SRT с выделенного порта потока.
streams:
- name: tv1
inputs:
- udp: {host: 239.0.0.1, port: 5000}
mpegts:
pnr: 1030
service_name: TV One
srt_play:
port: 4010
mpegts:
pnr: 200
pushes:
local-multicast:
udp:
host: 239.1.1.1
port: 5500
mpegts:
pnr: 300
pids:
v1: 211
a1: 221
Канальная секция накладывается на стримовую поле за полем: заданное у канала значение перекрывает стримовое, незаданное наследуется. Исключение — карта pids: это одно поле, непустая канальная карта замещает стримовую целиком, подорожечного слияния нет.
Переопределение доступно только каналам, которые поток отправляет сам. HTTP-раздача MPEG-TS и общий SRT-порт сервера всегда отдают общий выход потока — со стримовыми настройками.
Как это работает¶
Второй мультиплексор для канала с собственными настройками не запускается. Канал получает копию общего выхода, в которой переписаны только служебные таблицы и PID пакетов: раскладка пакетов по времени, PCR и continuity counters общего мультиплекса сохраняются, поэтому CBR-свойства выхода действуют и для переопределённых каналов. Каналы с одинаковыми эффективными настройками делят один побайтово идентичный поток — сто одинаковых пушей стоят как один.
Версия таблиц переписанного выхода ведётся по его собственной истории изменений, а не копируется из общего выхода.
Настройка в консоли¶
Откройте поток, вкладка Исходящий поток. Стримовая секция называется Выходной MPEG-TS; пустые поля показывают умолчания сервера подсказками:

У пуша по UDP, SRT или RIST и у раздачи SRT есть своя секция Переопределение выходного MPEG-TS. Пустые поля наследуют стримовую секцию — унаследованные значения видны плейсхолдерами:

PID дорожек добавляются построчно: имя дорожки и число. Пустая секция не сохраняется — канал остаётся на общем выходе.