天天看点

【视频处理工程】6、使用Lav Filter手动建立Filter Graph并播放视频文件

Render和Video Render完成。音频渲染器较为简单也很少会出问题,我们主要讨论视频渲染器的问题。

7了,那自然是首选EVR了。这部分的代码如下:

Build工程后运行,使用GraphStudioNext查看生成的Filter Graph,可以看到音视频渲染器都已经成功加入了,如下图所示:

【视频处理工程】6、使用Lav Filter手动建立Filter Graph并播放视频文件

但是我们发现一个问题,电影已经正常播放,但是只有声音却没有图像,这是为何?

既然不支持,那我们就换掉,改为使用VMR-9进行绘制。方法很简单,在添加EVR组件的语句中将CLSID_EnhancedVideoRenderer改为CLSID_VideoMixingRenderer9就可以了。

编译链接运行,查看Filter Graph,如下图:

【视频处理工程】6、使用Lav Filter手动建立Filter Graph并播放视频文件

播放画面:

【视频处理工程】6、使用Lav Filter手动建立Filter Graph并播放视频文件

至此,我们已经成功地把一部主流格式的电影文件通过手动建立Filter Graph的方式播放出来了,也对DirectShow的基本概念有了一定的了解。接下来还将继续进一步深入研究与其相关的更多内容。

继续阅读