首页 基于UDP多方视频会议系统的设计与实现

基于UDP多方视频会议系统的设计与实现

举报
开通vip

基于UDP多方视频会议系统的设计与实现 第 3期 2009年6月 微 处 理 机 MICROPROCESSORS No.3 Jun.,2009 基于 UDP多方视频会议系统的设计与实现 王拯洲,康慕宁,张 鹏 (西北工业大学计算机学院,西安 710072) 摘 要:简要概括 了视频会议系统的设计原理,重点讲述 了视频会议系统的实现过程,从视音 频俘获、视音频数据压缩、数据传送、数据接收、数据解压,到音频数据播放、视频数据显示的整个过 程。特别是对实现过程中的难点,例如:模拟会议室的创建过程、命令解析、视音频同步、音...

基于UDP多方视频会议系统的设计与实现
第 3期 2009年6月 微 处 理 机 MICROPROCESSORS No.3 Jun.,2009 基于 UDP多方视频会议系统的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与实现 王拯洲,康慕宁,张 鹏 (西北工业大学计算机学院,西安 710072) 摘 要:简要概括 了视频会议系统的设计原理,重点讲述 了视频会议系统的实现过程,从视音 频俘获、视音频数据压缩、数据传送、数据接收、数据解压,到音频数据播放、视频数据显示的整个过 程。特别是对实现过程中的难点,例如:模拟会议室的创建过程、命令解析、视音频同步、音频数据 的混音处理、中间代理服务器转发等做了详细的讲解。并对视频会议系统的发展和应用前景进行 了认真的分析。 关键词:视频会议系统;数据压缩;数据解压;混音处理 中图分类号:TP319 文献标识码:A 文章编号:1002—2279(2009)03—0049—04 Design and Realization of Muti—User VAMS Based on UDP WANG Zheng—zhou,KANG Mu—ning,ZHANG Peng (School ofComputer Science,Noahwest Ploytechnology University,Xian 710072,China) Abstract:The essay generalize the design principle of VAMS(Video—Audio Meeting System),In Special,descript the realize process of VAMS,the whole process comprises VA(Video—Audio)data capture,VA data encode,data send,data receive,Audio data play,video data display.The difficult problem was explained particularly,for instance,the create process of meeting room,command analysis, synchronization of Audio play and Video display,Stereo process of Audio data,the tranmit of agent server. The essay analysis the development of foreground of VAMS. Key words:VAMS;Data encode;Date decode;Stereo process l 引 言 随着互联网的普及与发展,互联网的带宽也越 来越大,基于互联网的信息特别是声音图像实时数 据的传输已经成为可能。如今正是一个经济全球化 的时代,世界上各个跨国公司为了自己的发展壮大 正不遗余力地在世界各地建立分公司,设立办事机 构。传统的以E—mail为主的信息传输已经不能满 足子公司与总部和子公司与子公司之间的通信需 求,而视频和音频数据的传输正好充分利用了互联 网带宽,并达到了实时交流以及进行远程开会的可 能。它相比更传统的电话会议更充分利用了互联网 资源,从而降低了运营成本。所以说视频会议系统 是国际互联网和经济全球化的产物。因此开发一个 安全的、低成本、高效率的视频会议系统已经是大多 数跨国公司特别是很多小公司的迫切需求。 2 视频会议系统的设计原理 视频会议系统的设计目标是为了利用互联网资 源,对处于不同地域的多台计算机(最多 1O台)之 间来模拟一个完整的会议环境,即每一个与会者通 过依次呼叫其它与会者来加人会议室,这样会议室 中的任意两个人通过点对点方式进行连接。一个与 会者发言,其它任何与会者都能听到他的声音,看到 他的视频图像 ,对于这个与会者而言,它能同时听到 所有与会者的声音,看到所有与会者的视频图像。 对于文字信息而言,每个人发出的文字信息,在线的 所有人都能看见。以4个人开会为例,会议室每个 与会者的互连关系如图 l所示:假设与会者为 n,则 互连关系的个数为 c ,如果 n=4,如图1,即互连关 系个数为C =6。 A B 图 1 与会者互连关系图 作者简介:王拯洲(1976一)。男,陕西咸阳人,硕士研究生,主研方向:软件工程与网络软件。 收稿 日期:2006—10—1O D C · 50· 微 处 理 机 2009矩 3 视频会议系统的实现过程 视频会议系统的实现过程主要为:①视频音频 设备初始化;②建立与会者队列;③建立与会者互连 网络,并分配数据传输端口;④命令包解析过程; ⑤视频捕获音频录音;⑥视频音频数据压缩;⑦视频 音频数据传输;⑧视频音频解压;⑨视频音频播放, 并进行数据同步;⑩在与会者退出会议室时,删除与 会者队列中的与会者信息。 (1)视频音频设备初始化 视频音频初始化是通过调用 API函数,检测计 算机有没有摄像头和麦克风,如果没有则 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 错误, 如果有,则分别启动视频和音频捕获线程。 (2)建立与会者队列端口 与会者队列是本系统为了维护各个与会者的信 息而建立的队列,如果自己被某个与会者呼叫,则将 与会者的信息特别是 IP地址,用户 ID等存储在队 列中,如果给所有与会者发送音频视频信息,则依次 遍历该队列,将音频视频信息发送给各个与会者,如 果有与会者退出会议室,则从队列中删除该与会者 信息。 (3)建立互连网络并分配端 口 会议室是一个两两互连的网络,其连接如图 1 所示,而互连网中的两个与会者要进行数据传输,必 须采用点对点方式的UDP(User Datagram Protocol,) 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 用户数据报进行通信,所以指定端口是必须的。 但在本系统中,与会者双方在发送数据时所使用的 端口是所指定的端口中的某一个,只要与会者双方 一 致就行。分配端口以4个用户为例,4个用户记 做A、B、c、D。端口分配算法如下: a.指定所使用 的通 信端 口(如 6667、6668、 6669)。 b.如果 A首先和 B、C、D连接,则 6667、6668、 6669三个端 口都没有 占用,所 以 A(6667)一B (6667),A(6668)HC(6668),A(6669)++D(6669)。 C.因为 A已经和其它三个互连完毕,所以只要 B、C、D三个互连即可,B已经占用了6667端口,B 只剩下6668、6669两个端口可供选择,因为 c的 6668已经占用,所以B只能用 6669和 C互连,B用 6668和D互连。 d.A、B已经和另外两个互连成功,只要 C、D互 连即可,而 C、D的 6668、6669已经 占用,所以C、D 只能用6667互连。 最终端口分配情况如图2所示。 A 6667 B D 6667 C 图 2 端 E1分配结果 (4)数据包解析 在发送命令包、音频数据和视频数据时,每一个 数据快的前两个字节表示数据块的类型,例如: FLAG — AUDIO表示视频数据包,值为 0x3131。 FLAG — VIDEO表 示 视频 数 据包,值为 0x3132。 FLAG _ CMD表示命令数据包,值为0x3133。FLAG— TEXT表示文本数据包,值为 0x3134。FLAG—PORT 表示端口数据包,值为0x3135。在视频数据包、音 频数据包、文本数据包中要包含一个大的 BYTE类 型的缓冲区,用来分别存储真正的视频数据、音频数 据和文本数据。在命令解析时,根据数据包类型的 不同,对相对应的数据包长度的数据进行强行转换 就可以解析出数据包中各个参数的值,例如命令数 据包结构如下: struct PACK . CMD { short flag; BYTE id; BYTE cmd; BYTE type;//0:始发 1:反馈 BYTE ext; BYTE 1TI — ChatNo; }; 其中flag表示是命令数据包(值为0x3133),以 区别音频数据包和视频数据包。cmd表示命令包中 的不同命令类型,例如:呼叫命令为CMD—JOIN,呼 叫回应命令为CMD_JOINOK。type表示区别是始发 命令包还是回应命令包。ext表示软件版本号, m — ChatNo用来区分每一个与会者,如果为4个与会 者,则取值为0、1、2、3。id表示发送的命令次数。 (5)视频捕获音频录音 视频捕获用 API进行实现,因为考虑功能的相 对独立性和可重用性,视频捕获封装在类CVideoCa— pture中,而音频录音封装在 CAudioRec中,音频录 音通过音频录音线程 AudiolnThreadProc实现,其中 音频帧的格式为: wf.wFormatTag = WAVE — FORMAT _ PCM ; wf.cbSize = 0; wf.wBitsPerSample=1 6; 3期 王拯洲等 :基于 UDP多方视频会议系统的设计与实现 ·5l· wf.nSamplesPerSec=8000; wf.nChannels=1; wf.rtAvgBytesPerSec=wf.nSamplesPerSec=lc f wBitsPerSample/8); · wf.nBlockAlign=wf.nCharmels (wf.wBits Per Sample/8); wFormatTag为音频压缩格式 WAVEFORMAT— PCM格式表示未压缩的音频格式,nChannels为声道 数,1或者2。nSamplesPerSec为每秒采样数,8000、 1 1025、22050、44100。nAvgBytesPerSec为每秒平均 的字节数,在 PCM方式中就等于 nChannels:IE nSam— plesPerSec wBitsPerSample/8 o nBlockAlign是一个 比较特殊的值,表示对音频处理时的最小处理单位, 对于 PCM非压缩,它就是 wBitsPerSample nChan— nels/8,而对于非压缩格式 ,则表示压缩/解压处理 的最小单位了。wBitsPerSample就是每采样值的位 数,8或者 16。cbSize则是表示该 WAVEFORMATEX 的结构在标准的头部之后还有多少字节数,对于很 多非 PCM的音频格式,有一些 自己的定义格式参 数,这些就紧跟在标准的 WAVEFORMATEX后面, 其大小就由cbSize指定。对于 PCM格式而言,为 0 或者忽略不检查。 (6)视音频数据的压缩 视频会议系统传输的都是实时高清晰的视频音 频数据,对于视频数据,图像大小以176×144,32位 真彩色为例,则一帧图像数据为 176×144×32/8= 76032B,按照10啦贞/秒计算,则 1O秒中的视频数据为 76032×10×10/1024/1024=7.25MB。对于音频数 据,每秒平均字节数为wf.nSamplesPerSec (wf.wBits PerSample/8)=8000×(16/2):16000B,所 以 lO秒 钟的音频数据为 16000×10/1024=973.5KB。特别 是音频数据的质量要求更高,因为视频会议系统主 要传输的是音频数据,如果不能保证声音的连贯性, 高清晰度,则与会者根本不能听清楚对方的发言,断 断续续的声音与会者根本不能忍受。所以为了提高 音频数据的连贯性和视频图像的高清晰度,就必须 保证视音频的高采样率,这样就更加增加了数据的 容量,而在互联网带宽给定的前提下,只能通过数据 压缩才能解决视音频质量和带宽这一矛盾。 在视频会议系统中,选择 H263解压缩标准,原 因有以下几点:①H263解压算法可靠,失真率低。 @)H263解压算法压缩比相对比较高。(~)H263解压 算法有现成的库函数可供使用,从而提高了开发效 率,节约了开发成本,使得系统具有更高的稳定性。 实验证明,采用 H263解压算法对视音频数据进行 压缩,可以有 16:l的压缩比。 (7)视频音频数据传输 视频会议系统是一个实时的大数据量的多点通 信系统,所以该系统选用UDP协议,即非连接的协 议进行点对点通信。因为数据量大,在网络上可能 发生阻塞,不考虑数据发送后的回应,在发送端只有 通过线程不断循环发送,而在接收端通过线程不断 循环接收来实现实时通信。所以在接收端有可能出 现无法接收到数据的情况,对于视频数据则会出现 视频帧的停顿。对于音频帧则可能出现某一时刻无 法听到某个与会者声音的情况。视频帧停顿不会影 响会议的进程,而音频帧的丢失则是不能容忍的,以 4个与会者为例,为了避免音频帧的丢失,在每一个 接收端分别开设了3个接收音频线程和3个解压线 程,这样可以最大限度地避免音频帧的丢失。 (8)视频音频解压 视频音频解压是视频音频压缩的逆过程,同样 采用 H263解压算法,它是分别将视频音频数据通 过 H263算法的解压函数还原成能够直接显示的视 频数据和直接播放的音频数据。所不同的是,视频 数据在一个接收线程中完成接收并解压,并将不同 与会者的视频数据显示在不同的显示区域中,而音 频数据由于对音质的高要求,需要分别通过三个接 收线程接收,并通过三个解压线程进行解压到三个 不同的缓冲区中。由于音频数据来自三个不同的与 会者,而音频播放设备,即耳机只有一个,为了实现 三个音频数据在同一个设备中互不干扰的进行播 放,达到一个人听三个人同时辩论一样的效果,只有 通过混音处理来实现。 , (9)音频数据混音处理 以4个与会者为例,对于来 自三个与会者的音 频数据,要在同一个播放设备中播放,就要进行混音 处理。 由于三个音频数据存放在不同缓冲区,而又要 在同一时刻进行播放,所以存在的问题是:在播放 时,三个缓冲区中有可能没有同时接收到新的音频 帧数据,所以为了让缓冲区数据进行同时播放,就要 进行等待处理,例如等待 10毫秒,在这里设置一个 时间阈值,如果等待的时间在阈值之内,则在等到所 有三个缓冲区全部接收到新数据时同时播放三个与 会者音频数据,如果某一方的音频数据在时间阈值 之内没有接收到新数据,则对这一与会者播放静音 数据,同时播放其它接收到的音频数据。将接收数 据三个缓冲区各个字节的值相加则完成了混音处 理,因为音频数据中每个字节值都在0—255之间, · 52· 微 处 理 机 2009正 将相加得到的混音数据转换到0—255之间,如果没 有接收到某一方的音频数据 ,则对应缓冲区的字节 加 0。 (1O)视频音频同步 视频音频同步是为了实现视频会议系统的真实 性,避免视频音频播放之间的时间差而设计的,为 此,在视频捕获和音频录音时加人时间标签,时间精 确到毫秒,在播放时解析视频音频数据中的时间标 签,如果相差在一定的毫秒之外,则进行等待处理, 从而保证了视频音频数据的同步。 (11)删除与会者队列 当与会者退出会议室或者异常退出时,则会议 室中的所有人要从 自己的与会者队列中将该与会者 信息删除。在发送音频数据时,就不用对该与会者 发送数据,可以提高性能,保证会议室中各个互连关 系的真实性。 4 视频会议系统的执行流程 (I)系统初始化 初始化命令接收线程 SockCmdThreadProc 初 始化音频接收线程 SockARecThreadProc 初始化视 频接收线程 SockAVThreadProc-~初始化视频编码解 码器 初始化音频录音线程 AudiolnThreadProc---~初 始化音频录音设备一初始化音频播放设备一初始化 音频解压线程一初始化音频混音处理线程叶初始化 视频捕获设备 (2)呼叫命令处理过程 发送呼叫命令CMD__JOIN一将呼叫命令加入命 令队列一开启命令队列检测线程,有两种可能:①如 果成功接收呼叫成功命令 CMD—JOINOK,则停止该 呼叫线程,并从命令队列删除该呼叫命令;②如果呼 叫未成功,即没有接收到呼叫成功命令 CMD— JOINOK,则处理 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 为,如果重发次数少于 5次则 重发呼叫命令。如果重发次数大于 5次,CMD— JOINOK则停止该呼叫线程,并从命令队列删除该 呼叫命令。 (3)命令发送过程 呼叫命令 CMD-JOIN_呼叫成功命令 CMD— JOINOK---~请求分配端口CMD_DISPORT---~分配端口 回应命令CMD—DISPORTOl 一分配端口成功确认命 令 CMD_DIsPORTCOMFRIM (4)音频数据处理过程 启动音频录音线程AudiolnThreadProc---~音频捕 获并压缩一给所有与会者发送音频数据包一接收音 频数据并解压_÷对多方音频数据进行混音处理—播 放合成的音频数据。 (5)视频数据处理过程 启动视频捕获线程 VideoStreamCallbackProc--~ 捕获视频数据压缩一给所有与会者发送视频数据包 一接收视频数据并解压缩视频帧一显示视频信息。 (6)文本信息发送处理流程 文本发送命令 CMD—SENDTEXT---~文本成功发 送成功确认命令 CMD_SENDTEXTOK (7)与会者退出命令处理过程 发送退出命令 CMD—ExI 从与会者队列中删 除该与会者信息。 5 中间代理服务器数据转发处理 中间代理服务器数据转发是为了解决多用户 (10个以上用户)而进行设计的,特别是在不知道对 方 IP的情况下,中间服务器转发将是解决问题的关 键,即任何视频音频数据都通过服务器进行转发,中 间服务器是解决公用 IP用户和局域网用户之间的 桥梁。当然这增加了系统的运营成本,是大公司首 选的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。 6 结 束 语 视频会议系统是一个高效的会议室模拟系统, 该系统使得公司内部处于不同地域之间的直接实时 交流成为可能。视频会议系统是国际互联网蓬勃发 展和经济全球化的产物。当然它也有一定的局限 性,即要依赖于互联网,所以基于无线的手持移动通 信设备的视频会议系统将可能成为该系统的替代解 决方案,但是由于无线网络带宽和安全性的限制,该 视频会议系统是 目前最好的解决方案,将会有巨大 的市场潜力和使用价值。 参考文献: [1] Jerome M Shapiro.Embedded Image Coding Using Zero- trees of Wavelet Coeflqeents[J].IEEE Transactions on Signal Processssing,1993,41(12):3445—3462. [2] 雷英杰,华继学,周创明,肖正.图像工程与嵌入式零 树小波图像编码[J].空军工程大学学报(自然科学 版),2004,5(1):56-58. [3] 毛立强.嵌入式零树小波编码算法研究[J].微机发 展,2004,14(7):11I一114. [4] 黎洪松.数字视频技术及其应用[M].北京:清华大学 出版社,1997. [5] 张春田,苏育挺,张静.数字图像压缩编码[M].北京: 清华大学出版社,2006. [6] 周长发.精通Visual c++图像处理编程[M].北京:清 华大学出版社,2006.
本文档为【基于UDP多方视频会议系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_674492
暂无简介~
格式:pdf
大小:322KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2012-06-10
浏览量:34