公开了一种Windows平台上对实时视频数据处理的方法及装置,为了解决现有的设计中,还不能将视频捕捉设备捕捉的视频流在送到第三方软件之前在应用层再处理的问题,本发明专利技术公开的方法包括:将虚拟视频捕捉模块注册到第三方软件模块的应用层接口;虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口与真实视频捕捉模块连接;虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作;虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块,由于在应用层加入的虚拟视频捕捉模块可将真实视频捕捉模块传输来的视频数据进行处理,因此实现了在应用层的处理。
【技术实现步骤摘要】
本专利技术属于多媒体处理领域,特别涉及一种Windows平台上对实时视频数 据处理的方法及装置。
技术介绍
即时视频聊天工具(如QQ, MSN)都会加上一些有趣的特效,是聊天沟 通时更加有趣,现有方案将特效加到摄像设备的驱动中,能够将使各个聊天工 具或者其他第三方软件显示出特效并通过鼠标、键盘加入用户的互动效果来, 但该方案由于实现于系统的核心层(kernel mode),对算法的移植有相当的限 制,比如浮点运算的限制,库函数少,并且实现调试起来非常复杂,开发成本 高。DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的 开发包,DirectShow为多媒体流的处理提供了强有力的支持。运用DirectShow, 我们可以很方便地从视频捕捉设备如支持WDM驱动模型的采集卡上捕获数 据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种^ 某体格式, 包括Asf、 Mpeg、 Avi、 Dv、 Mp3、 Wave等等,使得对多媒体数据的处理如回 放变得轻而易举。大家知道,为了提高系统的稳定性,Windows操作系统对硬 件操作进行了隔离,硬件工作在核心层(Kernel mode,操作系统特权级别为 Ring 0 );应用程序一般不能直接访问硬件。DirectShow为这些硬件设计包装过 滤器(Filter); DirectShow Filter工作在应用层(User mode,操作系统特权级 别为Ring3),外观、控制方法跟普通Filter—样,而包装Filter内部完成与硬 件驱动程序的交互。现有的设计中,还不能将视频捕捉设备捕捉的视频流在送到第三方软件之 前在应用层再处理。
技术实现思路
为了解决现有的设计中,还不能将视频捕捉设备捕捉的视频流在送到第三方软件之前在应用层再处理的问题,本专利技术实施例提供了 一种Windows平台上对实时视频数据处理的方法,包括将虚拟视频捕捉模块注册到第三方软件模块的应用层接口 ; 虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口连接真实视频捕捉模块;虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作; 虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块。 同时本专利技术实施例还提供一种Windows平台上对实时视频数据处理的装 置,包括注册模块用于将虛拟视频捕捉模块注册到视频预览模块的应用层接口 ; 接口模块用于虛拟视频捕捉模块通过真实视频捕捉模块的应用层接口与真实视频捕捉模块连接;处理模块用于虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作。由上述本专利技术提供的具体实施方案可以看出,正是由于在应用层加入的虚 拟视频捕捉模块可将真实视频捕捉模块传输来的视频数据进行处理,因此实现 了在应用层的处理。附图说明图1为本专利技术提供的第一实施例方法流程图;图2为本专利技术提供的虚拟摄像头将可用的真实摄像设备加入Filter Graph中;图3为本专利技术提供的虚拟摄像头在被render的时候连接真实摄像设备; 图4为本专利技术提供的第二实施例装置结构图。具体实施方式本专利技术提供的第一实施例是的方法,方法流程如图l所示,包括 步骤101:将虚拟视频设备202注册到第三方软件模块203 (如MSN)的应 用层接口。步骤102:虚拟视频设备202通过真实摄像头201的应用层接口连接真实摄 像头201。步骤103:真实摄像头201将采集的视频数据传输到虚拟视频设备202, 虚拟视频设备202对传输来的视频数据进行处理。在图1的103步骤中,虚拟视频设备202对传输来的视频数据进行处理可 以是将用户使用鼠标键盘输入的用户输入图像数据,和由真实摄像头201处接 收到的视频数据合成,使得显示的视频帧能够得到互动的效果。步骤104:虚拟视频设备202将处理后的视频数据传输给第三方软件模块203。上述步骤的实施可具体釆用DirectShow技术,使得虚拟视频设备202连接 真实摄像头201,对真实摄像头201传入的视频流进行修改,如加入特效,使 MSN显示出特效实现于应用层,具体实现步骤如下继承一个DirectShow变换过滤器(Transform Filter ),注册为虚拟一见频捕 捉模块即视频捕捉设备(Video I叩ut Device Category),成为一个虚拟视频设 备202,使得第三方软件模块203如视频预览模块(如MSN、 QQ等用于 对实时视频数据进行预览的软件)能够通过DirectShow的标准接口找到这个虚 拟视频设备202。在实现MSN兼容虚拟视频设备202应用层接口时,在Filter的OutputPin实现IAMStreamConfig, IKsPropertySet, ISpecifyPropertyPages使得MSN能够得到并设置虚拟视频设备202的格式。在Filter实现ISpecifyPropertyPages,使得MSN能够显示该设备的属性页。 通过上述的具体步骤即可实现将虚拟视频设备202注册到MSN的应用层接口。重载Transform Filter的JoinFilterGraph,在虚拟一见频设备202 #1 MSN加 入Filter Graph的同时,虚拟视频设备202寻找真实摄像头201,虚拟视频设备 202将真实摄像头201 —并加入到该Filter Graph里。虚拟摄像头将可用的真实 摄像设备加入Filter Graph中如图2所示。伪代码如下STDMETHODIMP CVirtualCamFilter::JoinFilterGraph(IFilterGraph * pGraph,LPCWSTR pName)if (pGraph)〃虚拟;f见频设备被插入程序的Filter Graph时4美CBaseFilter::JoinFilterGraph(pGraph, pName);if (m_pRealCam)m_pGraph->AddFilter(m_pRealCam, LCamera found by Vi加alCam);else //虚拟视频设备被移除时候m_pGraph->RemoveFilter(m_pRealCam);CBaseFilter::JoinFilterGraph(pGraph, pName); return NOERROR;重载OutpuPin的Connect,在MSN试图打开该虚拟视频设备202的视频 数据之前,连接真实摄像设备。虚拟摄像头在被render的时候连接真实摄像设 备如图3所示。这时虚拟视频设备202通过真实摄像头201的应用层接口与真 实摄像头201完整的链路连接完毕。在软件断开虛拟—见频设备202时,虚拟视频设备202自动断开不再占用真 实摄像头201,即真实摄像头201传输来的视频数据直接传输给MSN进行后 续处理。伪代码如下STDMETHODIMP CVirtualCamOutputPin: :Co薦ct(IPin * pReceivePin,const AM—MEDIA—TYPE *pmt〃 optional media type )〃连接真实摄像头CVitualCamFilter *pMyFilter = (CVitualCamFi本文档来自技高网...
【技术保护点】
一种Windows平台上对实时视频数据处理的方法,其特征在于,包括: 将虚拟视频捕捉模块注册到第三方软件模块的应用层接口; 虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口连接真实视频捕捉模块; 虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作; 虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块。
【技术特征摘要】
1、一种Windows平台上对实时视频数据处理的方法,其特征在于,包括将虚拟视频捕捉模块注册到第三方软件模块的应用层接口;虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口连接真实视频捕捉模块;虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作;虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块。2、 如权利要求1所述的方法,其特征在于,第三方软件模块为用于对 实时视频数据进行预览的视频预览模块。3、 如权利要求1所述的方法,其特征在于,虛拟视频捕捉模块通过 DirectShow技术注册到视频预览模块的应用层接口 。4、 如权利要求3所述的方法,其特征在于,通过继承DirectShow变换过 滤器并注册为虚拟视频捕捉模块,将虛拟视频捕捉模块注册到视频预览模块的 应用层接口。5、 如权利要求1所述的方法,其特征在于,所述视频数据处理为对视频 数据内容进行修改处理。6、 如权利要求5所述的方法,其特征在于,所述对视频数据内容进行修 改处理包括将用户输入的图像数据和真实视频捕捉模块...
【专利技术属性】
技术研发人员:曹虹,曹玉弟,
申请(专利权)人:北京中星微电子有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。