Directshow是Windows上常用的流媒体开发平台。特别是在视频回放采集等
方面,更是不二选择。有的时候我们需要对视频流进行某种处理,如加上字幕水
印,或者提供某些增强效果(比如亮度增强)。这时候就需要自行开发DirectShow Filter。
某些历史或者非历史的原因,导致了目前开发Filter变得非常复杂:一方面开发
环境难以搭建,另一方面资料也不齐全。我个人总结了一些要点,如下:
搭建环境前需先安装最新的Windows SDK,根据微软的消息,Directshow
SDK现已经全部和WinSDK整合。
手动Build位于SDK目录中的samples\DirectShow\BaseClasses目录下的项目,
一般使用Release模式来构建。这样性能比较高。
对于Filter项目,需手动添加Include(指向samples\DirectShow
\BaseClasses)和Lib(指向samples\DirectShow\BaseClasses
\Release_Unicode)
每一个Filter工程中,必须将Streams.h头文件置于第一个,这个非常关键,否
则将出现无比奇特的编译错误。所谓的置于第一个,是指在相应的cpp源文件
中,它必须位于stdafx.h之下,并在其他的任何头文件之前。
另外,如果有难以处理的问题,可以参考samples\DirectShow\Filters下的用例,这些用例都是微软自己写的,比较有参考价值。
转载于:https://blog.51cto.com/spinlock/412093