论文部分内容阅读
近年来,随着传感器技术和多媒体信息处理技术的进步,摄像头设备得到了普及和广泛的应用。越来越多的即时通信软件(Instant Messenger, IM),如MSN,QQ等都提供了对视频通讯的支持。然而仅仅传输从摄像头采集的原始数据已经不能完全满足人们日益增长的多媒体需求。越来越多的人希望能将其计算机上的其他影像资源方便快捷地共享给通信的对方实时观看。本文以此为动机,依托IM软件的视频传输功能,以期设计出一个简单通用的方案来支持用户影像数据的实时传输。然而,考察现有IM的现状表明:不同IM提供的插件开发环境不尽相同,且视频接口均未公开。若针对每个IM软件独立开发,则会导致较高的开发成本和较长的研制周期。本文针对这个问题,在充分研究了目前IM软件的视频传输机制和接口状况的情况下,设计并实现了一种虚拟摄像头。该虚拟摄像头采用了微软公司通用的基于视窗驱动程序模型(Windows Driver Model, WDM)的流类驱动技术,并辅以高效的过滤器方式的DirectShow机制,实现了用户影像的高效发送,处理和接收。在使用本方案时,一方面,用户影像软件将数据输送给虚拟摄像头,另一方面,IM软件在进行网络视频通信时选择从虚拟摄像头中获取影像数据,从而达到了传送用户影像的目的。滤波器工作方式的DirectShow机制的应用,使得数据传送架构清晰明了,并最大程度地降低了视频流在各个滤波器之间传输时进行的数据拷贝次数,从而减少了系统的内存消耗和CPU执行时间,实现了数据的快速发送和接收。该方案具有松耦合性、安装简便、输出图像丰富多彩等优点,随着互联网的飞速发展和多媒体通信的日益普及,其在视频聊天,网络视频会议,远程视频监控等领域具有广阔的应用前景。