Что вы, вероятно, хотите сделать, это конвертировать из MPEG-TS (Транспортный поток) в MPEG-PS (Программный поток). MPEG-PS - это формат стандартного файла .mpg, а также формат, используемый DVD-видео.
Вы, вероятно, должны овладеть стандартом ISO / IEC 13818-1. Этот стандарт содержит все подробности контейнера MPEG-TS и MPEG-PS (он не распространяется на кодированное видео, описанное в ISO / IEC 13818-2).
К счастью, это преобразование довольно простое, поскольку большая часть всей структуры MPEG-PS содержится в формате MPEG-TS. Транспортный поток содержит серию 188-байтовых пакетов, каждый из которых имеет заголовок. Пакеты PES (элементарный поток программы) содержатся в полезных нагрузках пакета. Пакеты PES содержат фактическую видео или аудио полезную нагрузку. Пакет PES может быть любой длины, и большую часть времени он охватывает несколько пакетов TS. Демультиплексирование пакетов PES из транспортного потока на самом деле просто включает удаление заголовков TS и правильную конкатенацию данных полезной нагрузки для формирования пакетов PES.
Как только у вас будет поток пакетов PES, вы будете мультиплексировать их в формат Программного потока, как указано в стандарте. В общем, вам не нужно анализировать пакеты PES или их содержимое, вы можете просто поднять их из одного формата и вставить в другой.
Несмотря на то, что преобразование довольно простое, оно все равно требует немало работы, так как вам нужно будет довольно хорошо ознакомиться со стандартом контейнера и тщательно проанализировать анализ потока битов, чтобы все было правильно. Поэтому, хотя я и говорю, что преобразование простое, это только в том смысле, что оно простое по сравнению с преобразованиями других форматов, где вам, возможно, придется углубиться в видеоданные.