应用 Dephi 开发视频会议
摘要:目前网上视频聊天软件、视频会议软件、可视 IP 电话软件随处可见,你是否想
自己做一个玩玩?其实这类软件无非是视频加上网络而建成的。如果熟悉视频捕捉和网络
传输技术,根本就难不倒你。微软为软件开发人员提供了一个专门用于视频捕捉的 VFW
SDK(Video for Windows SDK ),用它实现视频捕捉很 简单 , 至 于网络传输嘛 ,
Delphi 更是提供了 N 多种网络组件,随你用了。本文详细介绍了如何利用 Delphi 中开发
视频聊天软件,同时给出了两个程序示例。
关键词:Delphi VFW 视频 视频会议 视频聊天 Video for Windows
一、 引言
我们知道视频聊天软件的关键技术在于采集视频,并实时传输给聊天软件在线的人。
对于视频的采集,这里采用微软公司的关于数字视频的一个软件包 VFW(Video for
Windows)。相信很多人对它都很熟习, VFW 能使应用程序通过数字化设备从传统的模
拟视频源得到数字化的视频剪辑,VFW 的一个关键思想是播放时不需要专用硬件。为了解
决数字视频数据量大的问题,需要对数据进行压缩,而 VFW 引进了 AVI 的文件标准。该
标准未规定如何对视频进行捕捉、压缩及播放,仅规定视频和音频该如何存储在硬盘上及
在 AVI 文件中交替存储视频帧和与之相匹配的音频数据。通过 VFW,开发人员通过发送消
息或设置属性来捕捉、播放和编辑视频剪辑。当用户在安装 VFW 时,安装程序会自动地
安装配置视频所需要的组件,如设备驱动程序、视频压缩程序等。VFW 主要由 6 个模块组
成。VFW 功能模块:
1) AVICAP.DLL 包含执行视频捕捉的函数,它给 AVI 文件的 I/O 处理和视频、音频
设备驱动程序提供一个高级接口
2) MSVIDEO.DLL 包含一套特殊的 DrawDib 函数,用来处理屏幕上的视频操作
3) MCIAVI.DRV 包括对 VFW 的 MCI 命令解释器的驱动程序
4) AVIFILE.DLL 包含由标准多媒体 I/O(mmio)函数提供的更高的命令,用来访
问.AVI 文件
5) ICM 压缩管理器,用于管理的视频压缩/解压缩的编译码器(Codec)
6) ACM 音频压缩管理器,提供与 ICM 相似的服务,适用于波形音频
对于视频的传输,我们使用 UDP 来传,因为 UDP 传输速度快,TCP 是面向连接的,
建立连接时双方需经过三次握手,数据传输可靠,FTP、telnet 等就是基于 TCP 的,UDP
是面向非连接的,发出信息不需对方确认,但这样速度比 TCP 快,但有可能丢失数据,象
SMTP 、 tftp 等就是基 于 UDP 的 。 另 外 UDP 还支持广 播 , UDP 广 播 两 种 , 一 种 是
directed broadcast,比如你的网段是 192.168.0.X,你就往 192.168.0.255 发就可以
了。另一种是 limited broadcast,广播地址是 255.255.255.255
二、 视频聊天软件的开发步骤
2.1 创建捕捉窗口,采集视频
在进行视频捕捉之前必需要先创建一个捕捉窗口,并应以此为基础进行所有的捕捉及
设置操作。捕捉窗口可用 AVICap 窗口类的"CapCreateCaptureWindow"函数来创建,
其窗口风格可设置为 WSCHILD 和 WS_VISIBLE 参数。