0

我们的应用程序用于IGraphBuilder::RenderFile构建过滤器图。在 Windows 7 上,此应用程序可以流畅地播放 MPEG-PS 视频,但无法打开/播放 MPEG-TS(传输流)视频。IGraphBuilder::RenderFile返回错误代码VFW_E_UNSUPPORTED_STREAM

在我的 Windows 7 上,Windows Media Player 可以打开/播放那些 MPEG-TS HDV 视频。

我的问题是:

  1. 是否可以在 Windows 7 上通过 DirectShow 加载/播放 MPEG-TS 视频,只安装 Windows 7 的过滤器?因为我们最好不要要求用户安装一些第三方 DirectShow 过滤器。
  2. 如果不可能,是否有一些流行的编解码器可以处理 MPEG-TS HDV,并且充其量也适合 DirectShow。

我尝试过的更多细节:

  • 我还在 Windows SDK 中尝试了 GraphEdit。打开这些 MPEG-TS 视频时,它给出了同样的错误。

  • 如果我将一个 MPEG-TS 视频添加为File Source(Async),则其输出引脚标记为Major Type: Stream, SubType: GUID_NULL,并且无法连接到其他过滤器,例如MPEG-2 Demultiplexer.

  • 更令人沮丧的是,MSDN表示MPEG-2 Demultiplexer确实解复用了 MPEG-2 传输和节目流。

所以,我很可能错过了什么。经过几天的挖掘,我现在对这个问题非常绝望。欢迎和赞赏任何建议。

谢谢

扇子

4

1 回答 1

2

无法将 File Source (Async) 连接到 MPEG-2 Demux 的原因是文件源在 pull 模式下运行,而 MPEG-2 demux 仅支持 push 模式下的 TS。

Haali 媒体分配器可以解复用 MPEG-2 TS。如果您不想强制用户安装它,也许您可​​以编写一个简单的推式文件源过滤器并将其手动插入到您的图形中。

于 2010-10-28T07:42:07.510 回答