Как воспроизводить видео в формате MPEG-TS с помощью DirectShow на Windows 7? - PullRequest
0 голосов
/ 28 октября 2010

Наше приложение использует IGraphBuilder::RenderFile для построения графика фильтра.В Windows 7 это приложение может плавно воспроизводить видео MPEG-PS, но не может открывать / воспроизводить видео MPEG-TS (транспортный поток).IGraphBuilder::RenderFile возвращает код ошибки VFW_E_UNSUPPORTED_STREAM.

На моем Windows 7 проигрыватель Windows Media может открывать / воспроизводить эти видео MPEG-TS HDV.

Мои вопросы:

  1. Можно ли загружать / воспроизводить видео MPEG-TS с помощью DirectShow в Windows 7, когда в Windows 7 установлены только фильтры?Потому что для нас лучше не просить пользователей устанавливать некоторые сторонние фильтры DirectShow.
  2. Если это невозможно, есть ли некоторые популярные кодеки, которые могут обрабатывать MPEG-TS HDV, а также в лучшем случае подходят для DirectShow?.

Еще несколько подробностей, которые я пробовал:

  • Я также пробовал GraphEdit в Windows SDK.Он выдавал ту же ошибку при открытии этих видео MPEG-TS.

  • Если я добавил одно видео MPEG-TS как File Source(Async), его выходной контакт был помечен как Major Type: Stream, SubType: GUID_NULL, ине может быть подключен к другим фильтрам, таким как MPEG-2 Demultiplexer.

  • Больше разочарован, MSDN говорит, что MPEG-2 Demultiplexer выполняет демультиплексирование как транспортного, так и программного потоков MPEG-2.

Таким образом, очень вероятно, что я что-то пропустил.После нескольких дней копания я теперь очень отчаянно нуждаюсь в этой проблеме.Любые советы приветствуются и приветствуются.

Спасибо

Вентилятор

1 Ответ

2 голосов
/ 28 октября 2010

Причина, по которой вы не можете подключить File Source (Async) к MPEG-2 Demux, заключается в том, что источник файлов работает в режиме pull, а MPEG-2 demux поддерживает TS только в режиме push.

Медиа-разветвитель Haali может демультиплексировать MPEG-2 TS. Если вы не хотите заставлять пользователей устанавливать его, возможно, вы можете написать простой фильтр исходного файла принудительного типа и вставить его вручную в график.

...