基于Delphi的视频系统的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2009-06-22;修改日期:2009-08-31
作者简介:向 隅(1966-),男,副教授。
研究方向:数
学建模及网络数据库。
基于Del ph i 的视频系统的实现
向 隅
(武汉铁路职业技术学院电子电气工程系,武汉 430205)
摘要:随着通信技术与多媒体技术的飞速发展,以多媒体视频为主的应用得到了广阔的发展。
文章构建了一个W i ndow s 平台下独立于硬件的视频采集及传输系统。
使用A cti veX 视频控件,基于D elph i 2009开发环境,实现了对视频的采集和传输,并给出了软件流程框图。
实验结果表明:在应用程序中使用A ctive X 视频控件,很容易实现视频的采集和传输。
关 键 词:V ideoCap X A c ti veX 控件;图像捕获;视频传输中图分类号:T P391 41 文献标识码:B 文章编号:
1672-4550(2010)01-0063-03
Realization of V i deo Syste m s Based on Del phi
X I A NG Yu
(E l ectron i c&E lectri ca lEng i neeri ng D epart m en t ,W uH an Ra il w ay Vocati onal Coll ege ofT echnology ,W u H an 430205,Ch i n a)
Abstrac t :W it h t he rapid deve l op m ent of co mmunicati on and mu lti m ed i a techn i que ,the appli cation o f the mu lti m ed ia v ideo got a
broad deve l op m ent Th is pape r bu il ds a hard w are i ndependent v i deo ga t her i ng and trans m i ssi on syste m based onW i ndow s U sing v i deo
A c ti veX contro l has rea li zed v i deo ga t her i ng and trans m i ssi on based on De l phi 2009develop m ent env ironment and presented a so ft w are fl ow chart T he results sho w s tha t it i s very easy to rea lize v ideo ga t her i ng and trans m i ssi on usi ng V i deo A ctive X contro ls i n progra m m i ng
K ey word s :V ed i oC apX A cti veX contro ;l
i m ag e capture ;
v i deo trans m ission
1 引 言
随着计算机和多媒体技术的发展,可视电话、视频监控、视频聊天等应用迅速兴起。
视频捕获与实时处理成为目前图像处理系统中最关键的技术之一[1]。
尽管微软公司为用户提供了一个关于数字视频处理的软件包VF W SDK (V ideo for W indo w s SDK ),它能使应用程序通过数字化设备实现视频的捕获。
但是,微软的VF W SDK 是基于VC 和VB 的,而不是基于De l p h i 的,尽管I nter net 网络上有Delphi 的,若要在De l p h i 中使用VF W SDK,则较复杂,需要进行相关的定义。
目前市面上有许多音视频的A ctive X 控件,用户直接在开发软件中添加后就可以使用,非常方便。
其中,V ideoC apX 音视频A ctive X 控件是目前使用较为广泛的控件。
V i d eoCapX 允许程序员方便地访问视频采集卡、扫描仪和数码相机,如果用于保存JPG 文件和将照片上传到服务器,是一款支持D irect X 的A ctive X 控件。
2 系统结构
完整的视频采集及传输系统结构如图1所示。
其工作流程如下:图像信号由视频采集卡采集,视频捕获系统将采集后的信号转换为数据并存放在内存中供使用。
用户打开属性对话框调整图像,视频传输系统将视频流传输到请求方的机器上显示。
图1 系统结构
作为系统的核心部分,视频捕获系统是基于V ideo C apX 控件开发的(控件名为V ideoC apX ocx ),具体完成创建捕获窗口、连接驱动信息、捕获帧图像、传输帧图像等步骤。
3 视频捕获系统
视频捕获系统的核心是数字视频处理控件V id eo C apX,它是由Fath Soft w are 开发的,提供了一个访问硬件的透明接口,可以在不了解硬件具体特征
63 第8卷 第1期实验科学与技术
的情况下,实现对视频图像的访问和控制。
视频有2种方式显示:
1)覆盖模式(Overlay):覆盖模式将捕获缓冲区的内容直接在监视器上显示,而不占用系统资源。
并非所有采集设备都支持该模式,使用前需要检验设备是否支持该模式。
2)预览模式(Prev ie w ):预览模式将数字化的视频从捕获硬件存入系统内存。
该模式需要占用系统资源,与覆盖模式相比显示速度较慢。
为了完成视频的采集及传输,本系统采用预览模式,设计要点如下:
1)创建捕获视频窗口,采集视频。
在进行视频捕捉之前先要创建一个捕捉窗口,并以此为基础进行所有的捕捉、设置及传输操作。
2)捕捉窗口与驱动程序的关联。
只有一个捕捉窗口,不与视频设备关联是不可能获取到视频信号的。
设置控件的Connected 属性为True ,可连接到捕获驱动程序,使之与捕捉窗关联。
可能有多个视频捕捉设备,因此,用Get V i d eoDev iceCount 获取视频设备数量,用G et V i d eoDev ice N a m e()获取相应的设备名称,用V ideoDev iceI ndex 指定所选的视频捕捉设备,其值从0开始,表示第1个视频捕获设备,依此类推。
3)打开预览。
设置Prev i e w 属性值为True ,打开视频预览。
若不想占用系统资源,可设置O verPlay 属性值为T r ue ,也可打开视频预览,此时,视频显示速度加快。
在屏幕上可以看到来自摄像头的图像了。
4)设置视频设备的属性。
设置C apture Rate 的值确定预览模式的显示速率。
使用Sho wV ideo Source D lg 打开调整设置,以获得满意的视频效果。
5)加载声音。
若要传输声音,则设置Captu re Aud i o 属性值为True ,同时设置Prev ie wAud i o 的属性为True 。
但必须在打开预览之前设置。
6)抓拍图像和视频流。
用户若想保存图像和视频流,使用SaveFra m eJPG 抓拍图像,使用Save Fra m e 保存视频流。
7)接收视频。
使用D isplayRe mo te 获取远程服务器视频流,可以看到远处传来的视频了。
8)结束捕获。
使用S topCapture 停止捕获,同时设置Connected 的属性值为Fa lse ,断开与设备的连接。
以上捕获流程如图2所示。
4 V ideoCapX 控件的安装
Delphi2009中安装A cti v e X 控件的步骤如下:
图2 视频捕获流程
1)从www FathSoft co m 网站上下载安装V id eo C apX 控件的程序(程序名:V i d eoCapX co m ),如果使用正式版,需付费。
2)选择默认安装,相关文件被安装到C :
\
Progra m F iles \V ideoCapX 目录下,同时在注册表中注册该控件。
3)启动De l p h i2009。
4)选择F ile Ne w Package -Delphi for W i n 32菜单命令,新建一个项目。
5)选择Co m ponent 菜单下的!I m port Co m po nent ∀命令,打开!Type of Co m ponent ∀对话框。
6)选中!I m portA cti v e X Contr o l ∀单选项,单击!N ext ∀按钮,弹出!Reg istered A cti v e X Contro ls ∀对话框,在列表框中选择!V ideoC apX Acti v e X con tr o l ∀选项。
7)单击!N ext ∀按钮,在弹出的!Co m ponent ∀对话框中选中!Generate co m ponent w rappers ∀复选框。
8)单击!N ex t ∀按钮,弹出!C reate U nit ∀对话框,选择!Add U nit to package ∀单选项,单击!Fi n ish ∀按钮,完成安装。
9)在项目管理器中用鼠标右击Package ,从弹出的快捷菜单中选择!I nstall ∀命令,完成Pac k age 的安装。
在De l p h i 2009中添加V i d eoCapX 控件成功后,就可以在De l p h i 2009窗口添加该控件了,该控件位于组件面板的Acti v e X 控件类中。
5 视频系统的实现
视频传输可以是点对点的传输,也可以是点到多点的传输(广播方式)。
限与篇幅,本文只讨论点对点的传输。
图3所示是一个基于服务器和客户端视频传输系统实现的原理。
服务器端捕捉视频图
64 实验科学与技术2010年2月
像,当客户端提出浏览视频请求时,服务器端应答请求,
并可将视频传到客户端。
图3 视频系统实现原理
图4是服务器端的视频捕捉界面。
下拉列表框中保存着当前连接的视频捕捉设备,用户可从中选择一个视频捕捉设备。
!设置∀按钮用来打开视频设备属性设置对话框,!开始∀
按钮开始捕捉视频。
图4 视频系统服务器端
图5是视频系统的客户端界面。
当客户端单击
!连接视频∀按钮时,服务器端的视频传到客户端的窗口显示。
主要代码如下:服务器端窗口的代码:
V a r :i i n tege r ;beg i n #
for :i =0to V i deoC apX1 G e t V ideoD ev i ceCount -1do Co m boBox1 Ite m s A dd (V i deoCapX1 G et V i deoD ev i ceN a m e
(i ));#End ;
!开始∀按钮代码:#
if ComboBox1 Item Index<0t hen
m essagebox(0,'提示,''没有摄像设备,'M B_OK )e l se beg i n
V i deoCapX1 V ideoD ev i ceIndex :=ComboBox1 Ite m Index;
V i deoCapX1 P rev ie wAudio :=true ;//打开声音模式V i deoCapX1 Connected :=true ;//连接摄像设备V i deoCapX1 P rev ie w:=true ;//启用摄像V i deoCapX1 S tart Capt ure ;//开始摄像
end ;
客户端!连接视频∀按钮代码:#
V i deoCapX1 D isp l ayR e m ote(1'92 168 1 102,'true);
#
图5 视频系统客户端
6 总 结
本文基于V i d eoCapX 视频控件构建了一个独立于硬件的视频系统,能够完成视频采集、抓拍图像和视频传输。
参考文献
[1] 许成亮,胡剑凌,徐盛 基于VFW 的人脸监控系统
实现[J] 电视技术,2005(5):93-96
[2] 李为民,潘卫东,梁济仁 实现视频捕获和显示的
简易方法[J] 实验科学与技术,2007,5(1):44-46
(上接第23页)
了学生独立思考问题、解决问题的能力,从而达到提高学生创新能力的目的。
参考文献
[1] 肖晓萍,廖青,李自胜 基于机器人实验教学平台
的研制[J] 机电产品开发与创新,
2008(7):19-21
[2] 董大为,李琳,张铁,等 移动机器人自动循线及
避障检测的设计[J] 机床与液压,2008(4):111-
113
[3] 金文俊,冯浩,华亮 基于超声波传感器的自主移
动机器人的探测系统[J] 现代电子技术,2008(4):156-158
[4] 吴献钢 智能机器人创新实验的实践与改革[J] 实
验科学与技术,
2008,6(5):102-104
65 第8卷 第1期Exper i m ent Sc i ence &T echno l ogy。