Лучший способ построить график для транспортного потока MPEG2
В Windows 7 проигрыватель Windows Media очень хорошо поддерживает файлы.ts, в том смысле, что проигрыватель Windows Media знает, как обрабатывать такие файлы без каких-либо дополнительных пакетов кодеков.
однако, если я пытаюсь использовать graphedit для "рендеринга" файла.ts, он жалуется, что не знает, как построить для него график.
Какой метод использует Windows Media Player для демультиплексирования / декодирования этих файлов? это директ-шоу? Windows Media Foundation? BDA? Технологии Microsoft TV? единая модель тюнинга?
какой бы метод они ни использовали, он доступен как API для моего пользовательского приложения?
2 ответа
В DirectShow с использованием только фильтров Microsoft это может быть немного беспорядочно. Демплексор Mpeg2 необходимо настроить вручную с помощью кода, используя интерфейс IMpeg2 Demultiplexer или через страницы свойств, чтобы добавить выходные выводы для потоков контента. Обычно вам нужно подключить что-то еще к фильтру, чтобы проанализировать информацию PSI/PAT и идентифицировать программные идентификаторы потоков контента внутри транспортного потока. Microsoft предоставляет образец SDK для этого в Windows Platform SDK.
Это предполагает, что у вас есть обычный файл транспортного потока mpeg2. Вы можете использовать бесплатные приложения MediaInfo или TsReader Lite, чтобы точно увидеть, что находится в вашем файле TS.
Существуют не-Microsoft фильтры, которые значительно упрощают обработку транспортных потоков в DirectShow. Комбинация фильтров с открытым исходным кодом Haali Media Splitter и Ffdshow сделает это без какой-либо дополнительной настройки. Или коммерческие пакеты фильтров от MainConcept, Elecard, LEADTools и т. Д.
Я не проделал много практической работы с Media Foundation, поэтому у меня нет особых советов по этому вопросу. Более новые версии Windows Media Player используют MF вместо DirectShow. Некоторые, но не все, новые функциональные возможности MF также доступны через интерфейсы DirectShow.
Я не уверен в методе, используемом проигрывателем Windows Media.
Я использовал DirectShow для построения графика. Из источника вы можете добавить демультиплексор MPEG-2, создать контакты аудио и видео (используя интерфейс IMpeg2Demultiplexer), затем подключить контакт аудио к "Декодеру звука Microsoft DTV-DVD", а контакт "Видео" к "Microsoft DTV". -DVD Video Decoder ". Затем вы можете передать выходы в аудио и видео рендерера.
Например, вот часть графика, который я использовал:
Дэвид