一种Windows平台上对实时视频数据处理的方法及装置的制作方法

文档序号:7693279阅读:171来源:国知局
专利名称:一种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, L"Camera 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 = (CVitualCamFilter *) m_pTIPFilter; if( ! (pMyFilter-〉Getlnput()-〉IsCo画cted())) pMyFilter->ConnectToRealCamera ();〃其他一般OutputPin应该做的事情 DoSth—LikeOtherOutputPin();return NOERROR;STDMETHODIMP CVirtualCamOutputPin: :Disconnect()CVitualCamFilter *pMyFilter = (CFlyDutch *) m_pTIPFilter;if (m_Connected)if (pMyFilter->GetInput()->IsConnected()) pMyFilter->DisConnectRealCamera();〃其他一般OutputPin应该做的事情 DoSthJLikeOtherOutputPin();return S_OK;重载Transform filter ,对视频流(传入的参数IMediaSample* pin)进行 修改做出相应的应用,如增加特效。虛拟视频设备202作为一个Transform Filter,还可以扩展真实摄像头201 不能支持的视频格式,如真实摄像头201仅支持RGB24格式,通过虚拟视频本发明提供的第二实施例是的装置,其结构如图4所示,包括 注册模块301:用于将虚拟视频捕捉模块注册到视频预览模块的应用层接O ;接口模块302:用于虚拟视频捕捉模块通过真实视频捕捉模块的应用层接 口与真实视频捕捉才莫块连接;处理模块303:用于虚拟视频捕捉模块将真实视频捕捉模块传输来的视频 数据进行处理操作。传输模块304:用于虚拟视频捕捉模块将处理后的视频数据传输给第三方 软件模块。进一步,注册模块包括DirectShow注册模块3011:用于虛拟视频捕捉模块通过DirectShow技术注册到视频预览模块的应用层接口 。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种Windows平台上对实时视频数据处理的方法,其特征在于,包括将虚拟视频捕捉模块注册到第三方软件模块的应用层接口;虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口连接真实视频捕捉模块;虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作;虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块。
2、 如权利要求1所述的方法,其特征在于,第三方软件模块为用于对 实时视频数据进行预览的视频预览模块。
3、 如权利要求1所述的方法,其特征在于,虛拟视频捕捉模块通过 DirectShow技术注册到视频预览模块的应用层接口 。
4、 如权利要求3所述的方法,其特征在于,通过继承DirectShow变换过 滤器并注册为虚拟视频捕捉模块,将虛拟视频捕捉模块注册到视频预览模块的 应用层接口。
5、 如权利要求1所述的方法,其特征在于,所述视频数据处理为对视频 数据内容进行修改处理。
6、 如权利要求5所述的方法,其特征在于,所述对视频数据内容进行修 改处理包括将用户输入的图像数据和真实视频捕捉模块传输来的视频数据进 行合成。
7、 如权利要求1所述的方法,其特征在于,所述视频数据处理为对视频 数据格式进行修改处理。
8、 如权利要求l所述的方法,其特征在于,当断开虚拟视频捕捉模块时, 真实视频捕捉模块传输来的视频数据直接传输给第三方软件模块进行后续处 理。
9、 如权利要求1所述的方法,其特征在于,第三方软件模块对虚拟视频捕捉模块支持的视频格式进行设置。
10、 一种Windows平台上对实时视频数据处理的装置,其特征在于,包括 注册模块用于将虚拟视频捕捉模块注册到视频预览模块的应用层接口 ; 接口模块用于虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口与真实视频捕捉模块连接;处理模块用于虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据 进行处理操作;传输模块用于虚拟视频捕捉模块将处理后的视频数据传输给第三方软件 模块。
11、 如权利要求IO所述的装置,其特征在于,注册模块包括 DirectShow注册模块用于虚拟视频捕捉模块通过DirectShow技术注册到视频预览模块的应用层接口 。
全文摘要
公开了一种Windows平台上对实时视频数据处理的方法及装置,为了解决现有的设计中,还不能将视频捕捉设备捕捉的视频流在送到第三方软件之前在应用层再处理的问题,本发明公开的方法包括将虚拟视频捕捉模块注册到第三方软件模块的应用层接口;虚拟视频捕捉模块通过真实视频捕捉模块的应用层接口与真实视频捕捉模块连接;虚拟视频捕捉模块将真实视频捕捉模块传输来的视频数据进行处理操作;虚拟视频捕捉模块将处理后的视频数据传输给第三方软件模块,由于在应用层加入的虚拟视频捕捉模块可将真实视频捕捉模块传输来的视频数据进行处理,因此实现了在应用层的处理。
文档编号H04L29/06GK101262484SQ20081010285
公开日2008年9月10日 申请日期2008年3月27日 优先权日2008年3月27日
发明者虹 曹, 曹玉弟 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1