Directshow是微软公司推出的基于COM组件的多媒体开发包,其主要是通过filter(过滤器)的方式进行数据的传输与控制,Directshow是目前在windows上最好的多媒体开发包,其提供音、视频采集、数据转换、数据传输、音、视频播放等几乎囊或所有的流媒体开发的功能,而视频会议系统是一个多媒体实时传输系统,因此Directshow在windows的视频会议系统的开发当中占有非常重要的作用。下面我们列举一下Directshow在视频会议系统开发当中有哪些功能值得我们关注的。
1、 音、视频捕捉功能
Directshow主要是通过capture filter的方式对音、视频进行捕捉,而这些capture filter都是直接操作硬件设备,因此其捕捉效率非常高,视频会议系统可以利用这些capture filter实现音、视频数据的高效捕捉。
2、 数据播放功能
Direcshow的数据播放功能同样是直接调用硬件设备,其效率也非常高,通常我们用到的数据播放功能是音频播放和视频播放,音频播放通过directsound来实现,而视频播放通过video window 或者vm7 、vm9进行图像的重画。我们在重画图像的时候,一般在图像帧数不高的情况下,我们可以采用DBI的方式进行重画,但如果图像播放帧数很大,通过CPU重画的方式会消耗很大的CPU资源,因此我们就需要直接对显卡进行操作,而不是通过DBI进行重画。Directshow提供直接在显卡上重画的函数,我们可以通过它来实现实时的图像重画。
3、 格式转换
在多媒体领域里,数据有多种不同的格式,特别是一些视频格式的数据,其格式的种类非常多,为了保证数据的正确性,我们需要对数据的格式进行转换,Directshow 的格式转换主要通过filter来实现,不同的格式直接的数据,可以通过PIN和POUT进行数据的转换,数据的源是从PIN获取,而转换的目标由POUT输出。
4、 filter Graph
Directshow提供一个可视化的filter模型图供开发人员调试filter,我们开发视频会议系统的时候,可以从捕捉的filter开始,然后连接传传输的filter,最后连接播放的filter,这些流程可以通过filter Graph来模拟,我们需要把各部分的filter开发出来,就可以直观地进行测试。
5、 COM组件
Directshow开发的filter都是基于COM的方式,而COM的一次注册终身使用的方式,为我们程序的发布提供了极大的便利。
综上所述,Directshow多媒体开发包能开发出具有实时、高效、便捷的多媒体交互式系统,因此在windows的视频会议系统的开发当中,Directshow是我们首选的开发包。