Учитывая, что вам известна концепция NULL-пакетов, вы, возможно, работали с программным или аппаратным обеспечением коммерческого уровня в этой области.
Существует разница между CBR (видео) и системной скоростью (или скоростью мультиплексора). Когда видео кодируется как CBR, скажем, со скоростью 3,2 Мбит / с, вполне нормально, что оно колеблется на несколько сотен кбит / с вокруг этого поля. Так что пиковый битрейт, можно сказать, 3,3 Мбит / с. Это вполне нормально. При добавлении еще 100 кбит / с аудио общий максимальный битрейт может составить 3,4. Обычно в этом случае скорость системы будет выше 3,6 Мбит / с; где баланс - пустые пакеты.
Системная скорость 3,5 Мбит / с НЕ МОЖЕТ колебаться вообще. Если это произойдет, синхронизация на основе ПЦР не будет работать и, в основном, вещи не будут работать в реальной среде. Таким образом, в принципе, вы можете думать о 3,5 Мбит / с (около 240 пакетов в 100 миллисекундах) как о BUS. каждое место должно быть заполнено, чтобы обеспечить непрерывную транспортировку. Обычно это делается таким образом, что несколько мест остаются пустыми.
Самое печальное, что ни VLC, ни какой-либо другой инструмент с открытым исходным кодом не сделают это за вас.
Хак, который мы использовали, заключался в том, что мы использовали для отправки такого потока, созданного VLC, по IP-адресу (где отправка потока TS без пакетов NULL - это нормально - и получение этого через выход мультиплексора с ASI или такой интерфейс, который будет добавили глушитель.
В качестве альтернативы вы можете использовать Manzanita muxer , чтобы преобразовать ваш ненулевой поток TS в правильный поток TS.
EDIT:
На основании комментария - если все, что вам нужно сделать, это отключить SDT - необходимо сделать две вещи.
Удалить все пакеты из PID, который соответствует таблице SDT. Если вы не полностью демультиплексируете и ре-мультиплексируете - быстрый способ сделать это - повторно пометить 13-битный номер PID номером PID пакета NULL.
Удалить ссылку на значение PID SDT в таблице PAT. По сути, это означает, что вы создаете 3-4 пакета, которые исправлены PAT; и замените все последовательности пакетов PAT в потоке этими исправленными пакетами.