我们的应用程序用于IGraphBuilder::RenderFile
构建过滤器图。在 Windows 7 上,此应用程序可以流畅地播放 MPEG-PS 视频,但无法打开/播放 MPEG-TS(传输流)视频。IGraphBuilder::RenderFile
返回错误代码VFW_E_UNSUPPORTED_STREAM
。
在我的 Windows 7 上,Windows Media Player 可以打开/播放那些 MPEG-TS HDV 视频。
我的问题是:
- 是否可以在 Windows 7 上通过 DirectShow 加载/播放 MPEG-TS 视频,只安装 Windows 7 的过滤器?因为我们最好不要要求用户安装一些第三方 DirectShow 过滤器。
- 如果不可能,是否有一些流行的编解码器可以处理 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 传输和节目流。
所以,我很可能错过了什么。经过几天的挖掘,我现在对这个问题非常绝望。欢迎和赞赏任何建议。
谢谢
扇子