我在以下链接中有完全相同的问题,在 DirectShow 之外使用 DirectShow 过滤器? 我是一个新鲜的导演节目,那个堆栈中的两个答案对我来说还不够清楚。而且我找不到与作者联系以询问他是否解决了他的问题的方法。有没有办法做到这一点?
或者,有人可以更详细地解释这两个答案吗?“手动”调用各种过滤器是什么意思,“包装整个过滤器图”是什么意思?
我在以下链接中有完全相同的问题,在 DirectShow 之外使用 DirectShow 过滤器? 我是一个新鲜的导演节目,那个堆栈中的两个答案对我来说还不够清楚。而且我找不到与作者联系以询问他是否解决了他的问题的方法。有没有办法做到这一点?
或者,有人可以更详细地解释这两个答案吗?“手动”调用各种过滤器是什么意思,“包装整个过滤器图”是什么意思?
我无法评论“手动”方法(坏主意,IMO),但使用 DirectShow 的一种选择是将整个过滤器图包装在您的 Media Foundation 对象中。所以是的,Media Foundation 对象内部将是一个完整的 directshow 图,以及您感兴趣的过滤器。
当然,这很重要——对于 directshow 图,您需要一些输入过滤器,然后可能需要一个样本采集器过滤器来从图中获取样本。您的图表将类似于:
Source Filter -> Some DMO Decoder -> Sample Grabber -> Null Renderer
...每次样本通过时,样本采集器都会调用回调。
如果您的解码器过滤器是 DMO,那么它会变得容易得多。我认为你没有使用 DMO 过滤器?