没有合适的资源?快使用搜索试试~ 我知道了~
首页视频捕捉全教程(vc+vfw).doc
资源详情
资源评论
资源推荐
目 录
一. 视频捕获快速入门
二.基本的捕获设置
1.设置捕获速度:
2.设置终止捕获
3.捕获的时间限制
三.关于捕获窗口
1.创建一个 AVICAP 捕获窗口
2.将一个捕获窗口连接至捕获设备
3. 父窗口与子窗口的交互
4.捕获窗口的状态
四.视频捕获驱动和音频驱动
1.视频捕获驱动的性能:
2.视频对话框:
3.PREVIEW 和 OVERLAY 模式:
4.视频格式
5.视频捕获设置
6.声频格式
五.使用视频捕获
1.创建捕获窗口(CREATING A CAPTURE WINDOW)
2.连接到捕获驱动(CONNECTING TO A CAPTURE DRIVER)
3.列举所有已安装的捕获驱动(ENUMERATING INSTALLED CAPTURE DRIVERS)
4.得到捕获驱动的性能(OBTAINING THE CAPABILITIES OF A CAPTURE DRIVER)
5.得到捕获窗口的状态(OBTAINING THE STATUS OF A CAPTURE WINDOW)
6. 显 示 对 话 框 设 置 视 频 特 征 (DISPLAYING DIALOG BOXES TO SET VIDEO
CHARACTERISTICS)
7.得到和设置视频格式(OBTAINING AND SETTING THE VIDEO FORMAT)
8. 预览视频(PREVIEWING VIDEO)
9.将视频设置为 OVERLAY 模式(ENABLING VIDEO OVERLAY)
10.命名捕获文件(NAMING THE CAPTURE FILE)
11.格式化声频捕获(FORMATTING AUDIO CAPTURE)
12.改变视频捕获设置(CHANGING A VIDEO CAPTURE SETTING)
13.捕获数据(CAPTURING DATA)
14.增加一个信息块(ADDING AN INFORMATION CHUNK)
15. 在 程 序 中 加 入 一 个 回 调 函 数 (ADDING CALLBACK FUNCTIONS TO AN
APPLICATION)
16.创建一个状态回调函数(CREATING A STATUS CALLBACK FUNCTION)
17.创建一个错误回调函数( CREATING AN ERROR CALLBACK FUNCTION)
18.创建一个框架回调函数(CREATING A FRAME CALLBACK FUNCTION)
六.将四个标准对话框改成函数调用形式
AUDIOFORMAT 对话框
VIDEOFORMAT 对话框
VIDEOSOURCE 对话框
VIDEO COMPRESSION 对话框
前 言
视频捕获是指由专用的视频采集卡捕获声频和视频信息,然后将其进行数据化处理,
再经过软件的压缩进行处理,这时就可对这些数据进行保存、回放、传输等各种操作。
Windows 专门提供了 Video for Windows 来对视频处理进行支持,提供的接口可以被大
多数的视频采集卡支持,并有多种视频压缩驱动供选择(当然视频压缩可以自己开发),
采集卡支持摄像头,TV等多种输入。
一. 视频捕获快速入门
视频捕捉将一个视频流和音频流数字化, 然后存储在硬盘或其他存储介质上.
一个 AVICap 视窗口句柄描述了声频与视频流的细节, 这样就使你的应用程序从 AVI
文件格式, 声频视频缓冲管理, 低层声频视频驱动访问等等解脱出来, AVICap 为应用程序提
供了一个灵活的介面, 你可以仅仅使用如下几行代码就可以将视频捕捉加入你的程序:
hWndC = capCreateCaptureWindow ( "My Own Capture Window",
WS_CHILD | WS_VISIBLE , 0, 0, 160, 120, hwndParent, nID);
SendMessage (hWndC, WM_CAP_DRIVER_CONNECT, 0 /* wIndex */, 0L);
SendMessage (hWndC, WM_CAP_SEQUENCE, 0, 0L);
一个宏其实也是使用 SendMessage, 只不过提供给程序一个更易读的代码而已, 下面的
这些示例就是使用宏的方法将视频捕捉加入程序:
hWndC = capCreateCaptureWindow ( "My Own Capture Window",
WS_CHILD | WS_VISIBLE , 0, 0, 160, 120, hwndParent, nID);
capDriverConnect (hWndC, 0);
capCaptureSequence (hWndC);
当你创建了一个 AVICap 类的捕捉窗口并将它连接到一个视频驱动时, 此捕捉窗口即
可以 开始 捕捉 数据 , 你 的程 序可 以简 单的 发送 WM_CAP_SEQUENCE 消息 ( 或 者使 用
capCaptureSequence 宏)来开始捕捉.
如果是缺省的设置, WM_CAP_SEQUENCE 会开始捕捉视频音频流到 CAPTURE.AVI
文件中, 直到下面的某一事件发生为止:
用户按下了 ESC 键或者一个鼠标键
你的应用程序终止或异常中断捕捉操作
磁盘已满
在一个应用程序里, 你可以发送 WM_CAP_STOP 消息来终止捕捉数据(或者使用
capCaptureStop 宏), 你也可以发送 WM_CAP_ABORT 消息(或者使用 capCaptureAbort 宏)来
终止.
二.基本的捕获设置
基本的捕获设置包括:设置捕获速度(每秒捕获多少帧),是否同时捕获声频,捕获
缓冲,允许最大丢失多少帧,是否使用DOS内存,以及用键盘的哪个键或鼠标 的哪个键
来终止捕获等等。这些基本的设置都可以使用CAPTUREPARAMS结构来描述,
你可以使用 capCaptureGetSetup 宏来得到当前 的设置,然后改变此结构的成员变量,再使
用 capCaptureSetSetup 宏设置新的设置。
例如:
1.设置捕获速度:
捕 捉 速 度 是 指 捕 捉 任 务 每 秒 钟 捕 获 的 帧 数 , 你 可 以 发 送
WM_CAP_GET_SEQUENCE_SETUP 消息(或者使用 capCaptureGetSetup 宏)来得到当前的捕
捉速度, 当前的捕捉速度保存在 CAPTUREPARAMS 结构的 dwRequestMicroSecPerFrame 成
员变量中, 你可以通过设置此变量来改变当前设置, 单位是每毫秒连续的帧数, 你可以发送
WM_CAP_SET_SEQUENCE_SETUP 消 息 ( 或 者 使 用 capCaptureSetSetup 宏 ),
dwRequestMicroSecPerFrame 的值是 66667, 相当于每秒 15 帧.
2.设置终止捕获
你可以允许用户按下某键或某组合键或者鼠标的左右键来终止一个捕获任务, 如果是
实时的捕获, 则捕获的文件将会被丢弃; 如果是单步捕获, 在终止之前所捕获的内容将会被保
存.
你可以通过发送 WM_CAP_GETQUENCE_SETUP 消息(或者使用 capCaptureGetSetup
宏)来得到当前的设置, 当前的按键设置保存在 CAPTUREPARAMS 的 vKeyAbort 成员中, 当
前的鼠标设置保存在 fAbortLeftMouse 和 fAbortRightMouse 成员中. 你可以设置新的按键或
按 键 组 合 , 或 者 鼠 标 左 右 键 , 当 你 修 改 的 CAPTUREPARAMS 后 , 应 该 发 送
WM_CAP_SET_SEQUENCE_SETUP 消息来进行更新(或者使用 capCaptureSetSetup 宏). 缺
省的按键是 VK_ESCAPE. 你必须在指定按键之前使用 RegisterHotKey 函数, 鼠标缺省的值
是 fAbortLeftMouse 和 fAbortRightMouse 都为 TRUE.
3.捕获的时间限制
CAPTUREPARAMS 结构中的 fLimitEnabled 指示是否有时间限度, wTimeLimit 指示最
大的持续时间, 单位为秒.
得到 fLimitEnabled 和 wTimeLimit 的值可以发送 WM_CAP_GET_SEQUENCE_SETUP
消 息 ( 或 使 用 capCatureGetSetup 宏 ), 当 设 置 了 这 些 成 员 变 量 后 , 应 该 发 送 消 息
WM_CAP_SET_SEQUENCE_SETUP 消 息 ( 或 capCaptureSetSetup 宏 ) 来 更 新
CAPTUREPARAMS 结 构.
三.关于捕获窗口
在捕获之前必须创建一个捕获窗口(capture window),在发送消息或使用宏的过程中
都需要使用此窗口。
1.创建一个 AVICap 捕获窗口
你可以使用 capCreateCaptureWindow 函数来创建一个 AVICap 捕获窗口, 此函数将会返
回一个句柄, 此句柄以后在发送消息时要用.
你可以在一个程序里创建一个或多个捕获窗口, 然后给每一个窗口连接不同的捕获设置.
2.将一个捕获窗口连接至捕获设备
你可以动态的在一个捕获窗口与一个捕获设备 之前连接或断接, 你可以发送
WM_CAP_DRIVER_CONNECT 消息来使一个捕获窗口与一个捕获设备连接或关联. 当连接
上以后, 你就可以通过捕获窗口向捕获设备发送各种消息.
如果你的系统里装有多个捕获设备, 你可以在发送 WM_CAP_DRIVER_CONNECT 消
息时用 wParam 参数指定使用哪一个, 此参数是登记在 SYSTEM.INI 文件的[drivers]一节里
的列表中的某一项, 0 为第一个.
你可以使用 capGetDriverDescription 函数来得到已安装的捕获设备的名称及版本, 这样
你的程序就可以列举所有已安装的捕获设备和驱动, 这样用户就可以选择其中的一个来与你
的捕获窗口连接.
你可以发送 WM_CAP_DRIVER_GET_NAME 消息(或 capDriverGetName 宏)来得到连
接到捕获窗口的捕获设备的名称, 得到版本发送 WM_CAP_DRIVER_GET_VERSION 消息
(或 capDriverGetVersion 宏)
剩余22页未读,继续阅读
zhouzhixiangcn
- 粉丝: 3
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论11