我正在使用Media Foundation处理媒体播放器。我想支持VOB文件播放。但是,媒体基金会目前不支持VOB容器。因此我希望使用DirectShow。
我的想法不是使用DirectsShow图形来获取备用路径,而是抓住视频帧并将其传递到媒体基础中的相同管道。在媒体基础上,我有一个'IMFSourceReader',它只是从视频文件中读取帧。是否有直接显示等效,它只是给我框架而不需要创建图形,开始播放周期,然后尝试从渲染引脚中提取帧? (更清楚的是,DirectsShow是否支持一种架构,它可以在不实际播放视频的情况下为我提供原始帧?)
我已经阅读过有关ISampleGrabber的内容,但已弃用,我认为它不适合我的架构。我之前没有在DirectShow上工作过。
谢谢, MOTS
答案 0 :(得分:6)
您必须构建一个图表并接受来自相应解析器/解复用器过滤器的帧,该过滤器将读取容器并在其输出上传递单个帧。
播放不一定是实时的,也不需要在某处伪造那些视频帧。获得Sample Grabber
过滤器或客户过滤器所需的数据后,您可以使用Null Renderer
终止管道。也就是说,您可以以一种或多或少的方式安排获取所需的帧。
答案 1 :(得分:0)
您可以使用Monogram frame grabber filter连接VOB DS过滤器的输出 - 效果很好。请参阅那里的注释,了解如何将输出连接到外部应用程序。