基于VFW视音频采集方法研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VFW视音频采集方法研究

基于VFW视音频采集方法研究   摘要介绍了如何通过VC++编程技术调用微软VFW(Video For Windows)中的AVIcap 窗口类,以及在Windows平台上进行实时视频、音频的个性化采集与处理,并给出相关函数或代码。该方法有着较好的易用性、稳定性与扩展性,为现场的实时视、音频监控奠定了基础。   关键词VFW;AVIcap;VC++;视频采集;音频采集   中图分类号TN911.73文献标识码A文章编号 1007-5739(2010)16-0040-02      视频、音频采集为人们提供了一种实时、形象、真实的反映被监控场所画面与声音的方法,如电讯行业的机站监控,银行系统的柜台监控,生活中的小区安全监控等。而能否准确采集指定的视频图像和音频信息,进而实现数据的分析与处理,则关系到整个监控系统的成败。目前,基于微软VFW的方法,是Windows平台上的一种简单并快速地实现视频、音频捕获的有效手段[1]。为此,该文使用VC++ 开发平台,结合VFW中相关库函数,详细介绍了如何通过编程实现视、音频流的个性化采集、单帧图像抓取及信息存储等操作。   1AVIcap窗口类介绍   AVIcap窗口类是VFW中完成视、音频的定制采集,并按照所需方式进行存储、转换的重要应用程序接口。它的功能主要包括:①动态地同视频和音频输入器连接或断开;②设置视频捕获速率;③提供设置视频源,视频格式以及是否采用视频压缩的对话框;④设置视频采集的显示模式为Overlay或者Preview模式;⑤实时获取每一帧数字视频数据;⑥将视频流和音频流捕获并保存到一个AVI文件中;⑦按用户要求捕获某一帧的视频数据,并将单帧图象以DIB格式的文件保存;⑧创建、保存、或载入RGB格式下的调色板;⑨将捕获图象和相关的调色板拷贝到剪切板;⑩指定捕获数据的文件名,并能够将捕获的内容拷贝到另一个文件。   同时,AVIcap 窗口类中常用的结构有:①CAPDRIV ERC-APS:定义捕获设备的和视频叠加能力,有无控制视频源、视频格式的对话框等;②CAPSTATUS:定义捕获窗口的当前状态;③VIDEOHDR:定义了视频数据块的头信息,经常在编写回调函数时用到;④CAPTUREPARMS:包含控制视频流捕获过程的参数,如捕获帧频、指定键盘或鼠标键以终止捕获,捕获的时间限制等[2]。   2编程实现过程   2.1实时采集的基本流程   使用AVIcap 窗口类进行视、音频采集的基本流程如图1所示。   2.2视频流预览   为了实现视频流的预览,首先需要调用函数capCreate CaptureWindows创建一个预览窗口,该窗口的尺寸、位置等信息可以通过其自带参数来设置,成功创建预览窗口后,会得到该窗口的句柄capturewnd;然后使用capGetDriverDesc-ription函数获取当前系统可用的驱动程序信息,可用驱动程序会按0~9的顺序编号,不可用驱动程序不会被编号;接着执行capDriverConnect(capturewnd,select)函数连接一个驱动(其中select即为选择的驱动编号);驱动连接后,可以调用capPreviewScale、capPreviewRate分别设置预览画面比例、预览帧速率,同时预览前还有一个比较重要的设置,即通过capOverlay函数启动叠加模式,这种模式相较于不开启时会更节省CPU的占用率,并不是所有硬件采集设备都支持叠加模式,因此启动前应调用capDriverGetCaps(capturewnd,CapDrvCaps,sizeof (CAPDRI VERCAPS)),获取CAPDRIVERCAPS类型的结构体变量CapDrvCaps,判断CapDrvCaps.fHasOverlay的值为真时才可以启用叠加模式[3]。最后,执行capPreview(capturewnd,TRUE)启动视频流预览,即可看到视频画面。   2.3视、音频的个性化采集   2.3.1序列视、音频采集。微软VFW库提供了几种不同的采集方式,使用时可以根据需求进行相关设置。要想实现个性化采集,需要在采集前设置一个重要的结构体CAPTURE PARMS,里面包含着采集的设置信息,其中较重要的成员变量有如下几个:①dwRequestMicroSecPerFrame:该参数可以设置采集时的帧率,如设置其值为1 000 000/25就是25帧/秒。②fYield:该参数很重要,如果设置为True将会开启多线程进行采集。开启多线程可以有效避免信息采集时,主程序体失去对用户发出的控制指令的响应现象。③fCaptureAudio:设置该参数为真,就会在捕获视频流的同时去采集音频流信息。④fLimitEnabled:

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档