Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows 7上通过DirectShow播放MPEG-TS视频?_Windows_Winapi_Video_Directshow_Mpeg - Fatal编程技术网

如何在Windows 7上通过DirectShow播放MPEG-TS视频?

如何在Windows 7上通过DirectShow播放MPEG-TS视频?,windows,winapi,video,directshow,mpeg,Windows,Winapi,Video,Directshow,Mpeg,我们的应用程序使用IGraphBuilder::RenderFile构建过滤图。在Windows 7上,此应用程序可以顺利播放MPEG-PS视频,但无法打开/播放MPEG-TS(传输流)视频IGraphBuilder::RenderFile返回错误代码VFW\u E\u UNSUPPORTED\u流 在我的Windows 7上,Windows Media Player可以打开/播放那些MPEG-TS HDV视频 我的问题是: 在Windows 7上仅安装了过滤器的情况下,是否可以通过Direct

我们的应用程序使用
IGraphBuilder::RenderFile
构建过滤图。在Windows 7上,此应用程序可以顺利播放MPEG-PS视频,但无法打开/播放MPEG-TS(传输流)视频<代码>IGraphBuilder::RenderFile返回错误代码
VFW\u E\u UNSUPPORTED\u流

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

我的问题是:

  • 在Windows 7上仅安装了过滤器的情况下,是否可以通过DirectShow加载/播放MPEG-TS视频?因为我们最好不要要求用户安装第三方DirectShow过滤器
  • 如果这是不可能的,是否有一些流行的编解码器可以处理MPEG-TS HDV,并且最好也适合DirectShow
  • 我尝试过的更多细节:

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

    • 如果我添加了一个MPEG-TS视频作为
      文件源(异步)
      ,其输出引脚被标记为
      主要类型:流,子类型:GUID\u NULL
      ,并且无法连接到其他过滤器,例如
      MPEG-2解复用器

    • 更令人沮丧的是,
      MPEG-2解复用器
      对MPEG-2传输流和节目流进行解复用

    所以,我很可能错过了什么。经过几天的挖掘,我现在对这个问题非常绝望。欢迎提出任何建议,并表示感谢

    谢谢


    Fan

    无法将文件源(异步)连接到MPEG-2解复用器的原因是文件源在拉模式下运行,而MPEG-2解复用器仅支持推模式下的TS


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

    谢谢用户434507。这解释了很多。一个简单的推送类型文件源正在开发中。我将尝试寻找一些关于如何编写这样一个过滤器的示例或文档。如果你知道的话,你能发一下链接吗?我找到了“DVB端口HDTV泵过滤器”。使用它作为源过滤器可以使MPEG-TS视频为MPEG-2解复用所接受。另一个问题。我假设Windows7中的DirectShow没有提供源过滤器,可以读取MPEG-TS视频并将其推出。我说得对吗?