Skip to content

Выходной MPEG-TS

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

Все выходы MPEG-TS одного стрима — отдача по HTTP, SRT, направления по UDP, SRT и RIST — формирует один мультиплексор. Секция Выходной MPEG-TS на вкладке Исходящий поток задаёт его служебные таблицы; такая же секция у отдельного направления переопределяет их только для него.

Таблицы стрима

Секция подписана прямо в панели: «действует на все MPEG-TS выдачи стрима, пока пуш или SRT play не переопределит». Пустые поля показывают умолчания подсказками.

Поле Что задаёт Умолчание
Номер программы (PNR) запись в PAT, program_number в PMT и service_id в SDT 1
PID таблицы PMT PID таблицы PMT авто
PID треков явные PID дорожек: строка «Трек» + «PID» на каждую авто
Имя сервиса (SDT) имя сервиса в SDT имя стрима
Имя провайдера (SDT) имя провайдера в SDT пусто
Transport stream ID transport_stream_id в PAT и заголовке SDT 1
Original network ID original_network_id в заголовке SDT 1

Правила проверяются при сохранении, а не в эфире:

  • PID — из диапазона 32–8190: ниже зарезервировано за служебными таблицами, выше — за null-пакетами;
  • повторы PID внутри секции запрещены, включая совпадение PID дорожки с PID таблицы PMT;
  • номер программы не бывает нулём — нулевой номер в PAT зарезервирован за NIT;
  • имена сервиса и провайдера вместе ограничены так, чтобы SDT помещалась в один TS-пакет.

PID для дорожки, которой сейчас нет, задать можно: он сработает, когда дорожка появится. Если явный PID конфликтует с автоматически назначенным PID другой дорожки, побеждает явный, а вытесненная дорожка детерминированно переезжает на свободный PID — с предупреждением в логе.

Секция выходного MPEG-TS у стрима

SDT

Вместе с PAT и PMT в выходной поток входит таблица SDT (PID 0x11): один сервис с типом digital television, service_id равен номеру программы, имена сервиса и провайдера — из той же секции.

Строки кодируются по DVB: латиница уходит как есть, остальное — как UTF-8 с объявлением кодировки, поэтому кириллические имена корректно читаются приёмниками.

При изменении настроек версии затронутых таблиц PAT/PMT/SDT увеличиваются, и приёмники штатно подхватывают новые. Правка применяется на лету: направления доставки и подключённые клиенты не переподключаются.

Свои таблицы у направления

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

  • пушу по UDP, RTP, SRT или RIST — у RTMP транспортного потока нет, поэтому там секции не будет;
  • раздаче по SRT с выделенного порта стрима.

Пустые поля наследуются от секции стрима — унаследованные значения видны плейсхолдерами. Заданное у направления перекрывает стримовое. Исключение — PID треков: это одно поле, непустая карта направления замещает стримовую целиком, подорожечного слияния нет.

Отдача MPEG-TS по HTTP и общий SRT-листенер сервера переопределения не имеют: они всегда отдают общий выход стрима.

Переопределение у направления доставки

Почему это дёшево

Второй мультиплексор для направления с собственными таблицами не запускается. Направление получает копию общего выхода, в которой переписаны только служебные таблицы и PID пакетов: раскладка пакетов по времени, PCR и счётчики непрерывности общего мультиплекса сохраняются.

Отсюда два практических следствия:

  • CBR-свойства выхода действуют и для переопределённых направлений — переписывание таблиц не ломает постоянство битрейта;
  • направления с одинаковыми эффективными настройками делят один побайтово идентичный поток: сто одинаковых направлений стоят как одно.

Версия таблиц переписанного выхода ведётся по его собственной истории изменений, а не копируется из общего выхода.

Что дальше

  • Доставка в сеть — куда уходит этот поток.
  • CBR для DVB — требования модулятора к скорости и PCR.
  • TR 101 290 — как проверить, что таблицы и непрерывность в порядке.