VC下摄像头视、音频采集及回放技术

2016-02-19 20:12 0 1 收藏

下面图老师小编要跟大家分享VC下摄像头视、音频采集及回放技术,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】

一    视频采集及回放

   我采用VFW实现视频采集。VFW以消息驱动方式对视频设备进行存取,可以很方便地控制设备数据流的工作过程。目前,大多数的视频采集卡驱动程序都支持VFW接口,它主要包括多个动态连接库,通过这些组件间的协调合作,来完成视频的捕获、视频压缩及播放功能。视频数据的实时采集,主要通过AVICAP模块中的消息、宏函数、结构以及回调函数来完成。下面我主要叙述通过宏函数来完成的采集过程,每一个宏函数实现的功能都可以用相应的消息机制来实现,具体msdn里讲得很清楚了。

   (一)创建捕获窗口:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

   m_capwnd=

capCreateCaptureWindow("Capture",WS_POPUP,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,0,0);

  在视频捕获之前需要创建一个捕获窗,所有的捕获操作及其设置都以它为基础。 这里有8个参数。参数1是捕获窗口的名字,随便给一个什么都行,后面也没有引用到,不知道有什么用(问题1)?。参数2设置捕获窗口类型。参数3,4,5,6分别设置捕获窗左上角坐标和窗体宽度和高度。捕获窗口相当于MFC的一个捕获控件,这里设置的尺寸信息实际上就是这个控件的尺寸,跟采集的视频流数据参数没有关系。参数7是父窗口的句柄,应该指定某个窗口的句柄,为0是什么意思呢(问题2)?我猜想应该0是指当前的父窗口(创建捕获窗的窗口),但是没有在MSDN中找到相关的依据。参数8是捕获窗口标识,随便指定一个标识号即可。

(二)关联捕获窗口

 capSetUserData(m_capwnd,this);

 此函数的功能是将刚刚创建视频捕获窗口同创建它的视频捕获类通过类指针关联起来,如果编写WINDOWS API程序,就不需要此关联。这样做的好处是以后可以在任何地方(比如在回调函数中)通过capGetUserData函数恢复这个创建了捕获窗口的视频类指针,就可以引用这个类的成员变量和成员函数了。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

(三)指定回调函数

capSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo);

 当实时捕获的视频流数据填满视频缓冲区时,AVICAP会自动调用这里指定的回调函数OnCaptureVideo。回调函数OnCaptureVideo定义时有两个接收参数,第一个参数是视频捕获窗句柄,第二个参数是一个VIDEOHDR结构,包含了捕获的视频帧信息,如总共的字节数,视频YUV数据的起始地址等,根据这些信息可以实时保存捕获的视频流。回调函数的原型为

LRESULT CALLBACK OnCaptureVideo(HWND mwnd,LPVIDEOHDR lphdr)

(四)获取捕获驱动程序的版本信息

这一步不是必要的。

capGetDriverDescription(index,devname,100,devversion,100);

第一个参数是捕获驱动设备的索引号,从0~9,一般连接好摄像头后,默认该摄像头设备索引号为0。MSDN里讲可以从注册表或SYSTEM.INI文件中去查当前安装的视频捕获设备的索引号,可是我都没有找到,有谁知道吗(问题3)?还有问题是,当我安装了两个摄像头以后,利用VFW的宏函数只能检测到一个摄像头(即索引号为0)的信息,另一个设备便找不到了,是不是VFW只支持一个视频捕获设备呢,但从MSDN里的描述来看,应该可以支持多个视频设备的,这到底是怎么回事呢(问题4)?后面几个参数很简单,就不赘述了。

(五)连接捕获设备

capDriverConnect(m_capwnd,index);

此函数将创建的视频捕获窗口和视频捕获设备连接起来。第一个参数是捕获窗口句柄,第二个参数就是捕获设备索引号。

(六)设置视频捕获参数

这一步非常重要。

来源:https://www.tulaoshi.com/n/20160219/1623013.html

延伸阅读
mvbox怎么设置摄像头 第一步:先打开软件,然后切到摄像头操作列表,打开视频窗口,选中摄像头设置选项。 1)通过选择摄像头选择正确的摄像头设备,即摄像头来源选择,通过检测本地摄像头,捕捉摄像头图像来源; 2)设置摄像头画面采集大小(默认320*240),显示比例,瘦脸塑身拉伸率以及关闭虚拟视频时显示默认图片的选择。 ...
标签: 电脑入门
电脑没办法视频了,是不是摄像头坏了,应该遇到这种情况的朋友就会觉得是摄像头问题,其实不然,有时候是我们的设置问题的,导致电脑没办法识别,所以摄像头也没办法工作的!今天我们就此问题给大家介绍一些有关的知识! 1.外置USB摄像头不能用该如何处理? 很多台式电脑都有的是外置的USB摄像头,USB直接插入在机箱上,这里需要注意的是,有时...
对于小摄像头的驱动有几种方法,通过使用DirectShow来驱动摄像头灵活性比较好,有简单的方法也有比较复杂但更有效的方法,本文只介绍简单方法,希望与大家交流! 用DirectShow来使用摄像头,一般要求摄像头的驱动是WDM格式的,当然,一些比较老的驱动格式DirectShow也可支持。DirectShow通过图形过滤管理器(Filter Graph Manager)来与上层...
iphone摄像头专利图曝光 采用光线分离技术   本周二,美国专利局(USPTO)曝光了一项苹果 Tulaoshi.Com的新专利,此项专利被命名为三色分光摄像头模块。三传感器影像技术在专业级相机中较为常见,摄像头基于三棱镜将光线分为红、绿、蓝三色,在感光以及提升照片解析度方面都会带来很大的提升。 苹果这一专利文件号为8988564。...
360魔法摄像头介绍 请从 →里打开此功能 防护再更新,安全又贴心,木马防火墙3.0新增一层防护摄像头防护2.0。 摄像头防护2.0是旧版摄像头保护的升级版。自旧版摄像头保护推出以来,用户口碑一直较好,但是也有不少用户对旧版摄像头保护提出了许多宝贵的改进建议。我们全面收集了这些用户反馈及建议后,经过安全工程师月...

经验教程

933

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部