Транспортный поток - запись MPEG2 - PullRequest
2 голосов
/ 15 апреля 2011

Я записал канал с помощью своего DVB-тюнера (транспортный поток MPEG), я могу просматривать таблицы PAT / PMT внутри канала и определять VideoPID и AudioPID. Теперь я хочу записать один видео / аудио поток в "обычный" файл MPEG "* .mpg".

Если я смотрю в Интернете, я не получаю никакой ... хм "простой" информации, как сделать это, есть ли у кого-нибудь подсказка для меня? Я не хочу использовать FFDShow или какой-либо внешний инструмент, я хочу закодировать часть для себя ...:)

Greets Кристиан

Ответы [ 2 ]

0 голосов
/ 27 ноября 2011

Ваш ответ, возможно, сводится к тому, как преобразовать поток TS в поток PS (.mpg).

Как и в общих чертах, вам необходимо сделать следующее:

  1. Определить правильный PID, где находится желаемое видео и аудио.Обычно эта информация содержится в PAT / PMT, или вы можете просто извлечь эту информацию с помощью внешних инструментов, таких как DVBsnoop или libdvbpsi.Аудио кадры и видео картинки.Вы должны сохранить значение PTS / DTS пакетов.

  2. упорядочить пакеты (вас интересует формат PS).Вы можете использовать mlex или такие инструменты здесь.

Я подробно ответил здесь: транспортный поток и формат файла mpeg

0 голосов
/ 31 мая 2011

Я понимаю, что вы уже извлекли таблицы PAT и PMT.Теперь, если вы хотите записать один аудио / видео поток, вам нужно захватить пакеты TS определенного PID.Вы можете найти PID из таблицы PMT различных работающих каналов (A / V-потоки).Допустим, вы обнаружили, что Аудио определенного канала передает как пакеты TS на PID X, затем вы можете захватить все пакеты PID с PID X. Как только у вас есть транспортные пакеты с PID X, вы можете извлечь элементарный потокиз этих собранных пакетов, которые будут вашими закодированными данными.Теперь вы можете воспроизводить этот элементарный поток, используя любой из автономных декодеров / проигрывателей.

Спасибо, Дельфин

...