视频采集DirectShow标准介绍
在流媒体视频采集卡中,软件的兼容性是非常重要的,如九视电子系列流媒体采集卡,其都支持各种DirectShow标准开发的视频软件,DirectShow是微软推出的一款针对Windows平台上进行流媒体处理的开发包,对于流媒体视频领域起到了非常大的帮助和推动动力...
在流媒体视频采集卡中,软件的兼容性是非常重要的,如九视系列流媒体采集卡,其都支持各种DirectShow标准开发的视频软件,DirectShow是微软推出的一款针对Windows平台上进行流媒体处理的开发包,对于流媒体视频领域起到了非常大的帮助和推动动力。如DirectShow为多媒体流的捕捉和回放提供了强有力的支持。用DirectShow开发应用程序,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。
DirectShow标准是流媒体软件中非常重要的,其是基于COM的,为了编写DirectShow应用程序,需要了解COM客户程序编写的基础知识。DirectShow提供了大量的接口,但在编程中发现还是不够方便,如果能构建一个视频捕捉类把常用的一些动作封装起来,那么就更方便了。
下面我们就针对流媒体编程的思路进行简单的介绍,希望能对广大视频用户有所帮助。
目前很多视频会议软件、直播软件等都是在DirectShow标准上开发的,为了更加容易建立视频捕捉应用程序,DirectShow提供了一个叫做Capture Graph Builder的对象,Capture Graph Builder提供IcaptureGraphBuilder2接口,该接口可以建立和控制Capture Graph。
如视频会议软件等都需要加入视频捕捉功能,那么必须首先获取并初始化IcaptureGraphBuilder2接口,然后选择一个适当的视频捕捉设备。选择好设备后,为该设备创建Capture filter,然后调用AddFilter把Capture filter添加到Filter Graph。
如果仅仅希望用摄像头来进行实时监控的话,只需要在上面的基础上调用ICaptureGraphBuilder2::RenderStream就可以了:
ICaptureGraphBuilder2 *pBuild; // Capture Graph Builder
//省略初始化部分代码
IBaseFilter *pCap; // Video capture filter.
//省略初始化和添加到Filter Graph部分代码
pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, pCap, NULL, NULL);
通过以上简单的介绍,相信大家现在对视频流媒体中的DirectShow有了更加清楚的认识,可以说目前绝大多数的视频会议软件、P2P软件、直播软件、录播软件等都是基础此标准开发的。而九视流媒体视频采集卡其都兼容DirectShow标准开发的软件,所以其兼容性是非常强的,在直接应用上和系统集成商都是非常方便和快捷的。