我们的应用程序使用IGraphBuilder::RenderFile
来构建过滤器图。在Windows 7上,此应用程序可以流畅播放MPEG-PS视频,但无法打开/播放MPEG-TS(传输流)视频。 IGraphBuilder::RenderFile
会返回错误代码VFW_E_UNSUPPORTED_STREAM
。
在我的Windows 7上,Windows Media Player可以打开/播放那些MPEG-TS HDV视频。
我的问题是:
我尝试了一些细节:
我还在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传输和节目流。
所以,我很可能错过了一些东西。经过几天的挖掘,我现在对这个问题非常绝望。任何建议都欢迎和赞赏。
由于
范
答案 0 :(得分:2)
您无法将文件源(Async)连接到MPEG-2 Demux的原因是文件源在拉模式下运行,而MPEG-2 demux仅在推模式下支持TS。
Haali媒体分割器可以解复用MPEG-2 TS。如果您不想强制用户安装它,也许您可以编写一个简单的推式文件源过滤器并将其手动插入到图表中。