当前位置:七道奇文章资讯编程技术Delphi编程
日期:2011-03-20 18:14:00  来源:本站整理

<b>用Delphi开辟视频聊天软件</b>[Delphi编程]

赞助商链接



  本文“<b>用Delphi开辟视频聊天软件</b>[Delphi编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
  择要:目前网上视频聊天软件、视频会议软件、可视IP电话软件到处可见,你能否想自己做一个玩玩?其实这类软件无非是视频加上网络而建成的.假如熟习视频捕捉和网络传输技术,根本就难不倒你.微软为软件开辟人员供应了一个专门用于视频捕捉的VFW SDK(Video for Windows SDK),用它实现视频捕捉很简单,至于网络传输嘛,Delphi更是供应了N多种网络组件,随你用了.本文具体介绍了若何操纵Delphi中开辟视频聊天软件,同时给出了两个程序示例.

  关键词:Delphi VFW 视频 视频会议 视频聊天 Video for Windows

  1、引言

  我们知道视频聊天软件的关键技术在于采集视频,并及时传输给聊天软件在线的人.关于视频的采集,这里采取微软公司的关于数字视频的一个软件包VFW(Video for Windows).相信很多人对它都很熟习,VFW能使利用程序通过数字化设备从传统的模拟视频源得到数字化的视频剪辑,VFW的一个关键思惟是播放时不需求专用硬件.为了办理数字视频数据量大的问题,需求对数据举行压缩,而VFW引进了AVI的文件尺度.该尺度未规定若何对视频举行捕捉、压缩及播放,仅规定视频和音频该若何存储在硬盘上及在AVI文件中交替存储视频帧和与之相匹配的音频数据.通过VFW,开辟人员通过发送消息或设置属性来捕捉、播放和编辑视频剪辑.当用户在安装VFW时,安装程序会自动地安装配置视频所需求的组件,如设备驱动程序、视频压缩程序等.VFW主要由6个模块构成.VFW功效模块:

  AVICAP.DLL 包含履行视频捕捉的函数,它给AVI文件的I/O处理和视频、音频设备驱动程序供应一个高级接口

  MSVIDEO.DLL 包含一套特别的DrawDib函数,用来处理屏幕上的视频操作

  MCIAVI.DRV 包含对VFW的MCI号令注释器的驱动程序

  AVIFILE.DLL 包含由尺度多媒体I/O(mmio)函数供应的更高的号令,用来拜候.AVI文件

  ICM 压缩管理器,用于管理的视频压缩/解压缩的编译码器(Codec)

  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、视频聊天软件的开辟步骤

  2.1 成立捕捉窗口,采集视频

  在举行视频捕捉之前必必要先成立一个捕捉窗口,并应以此为底子举行全部的捕捉及设置操作.捕捉窗口可用AVICap窗口类的"CapCreateCaptureWindow"函数来成立,其窗口吻概可设置为WSCHILD和WS_VISIBLE参数.

  有了捕捉窗口,我们便可以将视频流和音频流捕捉到一个AVI文件中;动态地同视频和音频输入器件衔接或断开;用Overlay或Preview情势对输入的视频流举行及时显示,设置捕捉速率,显示掌握视频源、视频格局及视频压缩的对话框,成立、保存或载入调色板,将图象和相关的调色板拷贝到剪贴板,将捕捉的单帧图象保存到BMP格局文件中.

  2.2 捕捉窗口和驱动程序的关联

  仅仅一个捕捉窗口是不能工作起来的,它必必要与一个设备相关联才能获得视频信号.用函数CapDriverConnect可以使捕捉窗与其设备驱动程序相关联.

  2.3设置视频设备的属性

  通过设置TcaptureParms构造变量的各个成员变量,可以掌握设备的采样频率、中止采样按键、状况行为.设置好TcaptureParms构造变量后,可以用函CapCaptureSetSetup使设置见效.之后还可以用CapPreviewScale、CapPreviewRate设置预览的比例与速度,也可以直接利用设备的默许值.

  2.4翻开预览

  操纵函数CapOverlay可挑选能否采取叠加情势预览,以使系统资源占用小,视频显示速度加快.然后用CapPreview启动预览功效,这时便可以在屏幕上看到来自摄像头的图象了.

  2.5利用捕捉窗回调函数

  前的四个步骤便可以成立一个基本的视频捕捉程序了,假如想自己处理从设备捕捉到的视频数据,则要利用捕捉窗回调函数来处理,比方一帧一帧地得到视频数据,也可以以流的方法得到视频数据等等.

  2.6传输视频流

  利用回调函数可以获得第一帧的数据,我们利用网络技术将数据发给别的机械,别的机品将接纳的数据显示出来.

  2.7接纳视频

  接纳UDP数据,同时将接纳到的数据回显出来,这样便可以看到远处传来的视频了.

  3、用Delphi编写程序代码

  微软的VFW SDK只有VC和VB版,并没有Delphi版,不过在网上可以找到VFW.PAS文件,FW.PAS文件声明了调用DLL中的各个函数和变量.(注:源代码中供应了VFW.PAS文件)

  下面就以Delphi7开辟一个网络视频聊天软件,聊天软件分两个程序,一个是视频采集程序并举行UDP广播的视频聊天软件服务器,另一个是接纳UDP广播程序显示传来的视频数据的视频聊天软件客户端.

  3.1成立视频聊天软件服务器

  3.1.1新建一个工程,命名为Project1.dpr,并把VFW.PAS加到USE中



  3.1.2在Form1上安排一个Tpanel控件,该控件用于显示视频.之后再安排两个Tbutton控件,一个caption为"开始",另一个Name为"终止",安排一个UDP组件,这里用indy的IdUDPClient用来传输视频,如图示:


  3.1.3定义全局变量

CapWnd:THandle; //定义捕捉窗句柄
CapParms:TcaptureParms; //用于设置设备属性的构造变量
BMPINFO:TBitmapInfo; //BMP图象信息


  以上是“<b>用Delphi开辟视频聊天软件</b>[Delphi编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        100%(1)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .