Любая программа, которая декодирует файл MPEG2-TS, будет снова и снова искать 188-байтовый пакет.Если вы посмотрите на гекс, то увидите байт 0x47, который является байтом синхронизации (также первым байтом) каждого пакета каждые 188 байтов.Вот почему добавление данных XML в файл может испортить любые декодеры.
Что вы можете сделать, это добавить свои собственные пакеты или перехватить пакеты с нулевым PID, как правило, в начале файла MPEG2-TS.К сожалению, чтобы сделать это правильно, вы, вероятно, захотите, чтобы эти данные были в таблице информации о сети, которая может еще не существовать.Это означает, что вам, возможно, придется добавить ссылку на NIT в PMT.Все это требует передовых знаний и возможности разбора / записи транспортного потока.
Возможно, вам удастся добавить пакеты в начале файла без необходимости настройки часов.Или просто перехватите существующие пакеты с нулевым PID (не требуется изменение эталонной синхронизации).Затем в ваших новых пакетах используйте идентификатор пакета, который, вероятно, не будет использоваться, как 8190. Выполнение этого без изменения PMT для ссылки на NIT не будет полностью действительным MPEG2-TS из-за PID без ссылки, но, вероятно, все еще будет работать вбольшинство коммерческих декодеров.
Во многом это не имеет смысла, я уверен, потому что вы просто пытаетесь добавить некоторую информацию о тегах и не знакомы с MPEG2-TS.Но стандарт, который определяет точный формат: ISO / IEC 13818-1 .Осторожно, это довольно тяжелое чтение.Если вы хотите стать легче (и дешевле), вам, возможно, удастся обойтись, просто wikipedia .