基于xmpp的网络视频传输系统的研究


学校代码:10255学号:2081118基于XMPP的网络视频传输系统的研究THERESEARCHoFNETWORKⅥDEoTRANSPORTATIONSYSTEMBASEDONXMPP专业:计算机软件与理论姓名:樊军指导教师:曾培峰答辩日期:2011年3月1日东华大学计算机科学与技术学院SchoolofComputerScienceandTechnologyDonghuaUniversity 东华大学学位论文原创性声明JY舢舢2舢1舢3舢6删5删㈣53舢本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。学位论文作者签名:鬃罕日期:纠1年弓月/日 东华大学学位论文版权使用授权书学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。本人授权东华大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于学位论文作者签名:保密口,在年解密后适用本版权书。不保密阢,羧耳日期:纠1年3月fEt⋯龆咎龟日期:酗,『年夕月/日 东华大学硕士研究生学位论文摘要基于XMPP的网络视频传输系统的研究摘要随着如今计算机和网络技术的发展,网络视频会议系统的应用已经越来越广泛,已经成为企业内部沟通和交流的重要手段。但传统的网络视频会议系统,软硬件成本高,开发工作量大,越来越多的学者开始研究新型的网络视频会议系统。XMPP(ExtensibleMessagingandPresenceProtoc01)是一种开放的基于XML的即时通信协议,具有良好的可扩展性。Red5是一款开源的流媒体服务器,具有强大的流媒体编解码和传输功能。因此,本文提出了基于XMPP和Red5的网络视频会议解决方案,主要研究成果如下:1)利用XMPP分布式的网络体系架构和模块化可扩展的系统结构,并结合Red5的Flash音视频编解码和传输功能,给出了基于XMPP和Red5的网路视频会议系统中的服务器端、客户端以及指令控制系统的设计方案,同时给出了会话管理、消息处理、用户认证等关键业务的实现方法。2)利用XMPP协议中的IQ和Presence消息处理机制控制客户端与Red5服务器之间的音视频传输和视频会议室的状态,并实现了点对点视频会议、消息传输、文件传输以及多人视频会议、消息传输、交互式电子白板的功能。3)用户在参与视频会议时,需要一直与服务器保持连接并进行实 东华大学硕士研究生学位论文摘要时通信,为了保证服务器能及时处理某个用户的意外断连事件,本文利用XMPP协议中的Presence消息机制,给出了客户端与服务器之间的心跳机制。4)网络视频会议系统中最重要的问题是如何解决音/视频传输过程中的带宽消耗问题;如何合理的使用音视频服务器的带宽资源。因此本文提出了服务器端视频会议室带宽的管理和分配算法、客户端根据网速动态调整音视频传输质量和音/视频分层技术三种方法,通过这三种方法有效的降低了带宽消耗,提高了带宽资源的利用率。通过对XMPP协议和Red5流媒体服务器的研究,本文提出了基于上述两者的网络视频会议解决方案。经过实际的开发和测试,该方案开发效率高,成本低。由于基于XMPP的体系架构,系统具有很强的可扩展性和开放性,可以很容易的扩展其它应用以及与其它IM系统进行互联互通,真正实现了平台的统一。关键字:XMPP,Red5,Flash,视频会议 东华大学硕士研究生学位论文ABSTRACTTHERESEARCHoFNETWORKVIDEoTRANSPORTATIoNSYSTEMBASEDoNXMPPAbstractNowadays,淅Ⅱ1thedevelopmentofcomputerandnetworktechnology,thenetworkvideoconferencesystemhasbeenmorewidelyapplied.Ithasbecameanimportantmodeofexchanginginformationintheenterprise.However,thetraditionalnetworkvideoconferencesystemcostshiglllyinsoftwareandhardware,andtheworkloadofdevelopmentislarger.Sothatmoreandmorescholarshadbegantoresearchanewtypeofnetworkvideoconferencesystem.XMPP(ExtensibleMessagingandPresenceProtoc01)isanopenInstantMessengerprotocolbasedonXMLwiththegoodscalability.Red5isanopenstreamingmediaserverwiththepowerfulcapabilityofstreamingmediaencoding,decodingandtransportation.Thereforeinthispaper,anewvideoconferencesolutionbasedonXMPPandRed5isproposed.Themainresearchachievementsareasfollows:1)BasedonthecombinationofthescalabilityofXMPPandtheFlashcodecandtransmissionfunctionsofRed5,thedesignsolutionofServer,ClientandthecommandcontrolsysteminVideoConferencesystemareproposedinthispaper.Atthesametime,therealizationmethodofsessionmanagement,messagemanagement,userauthenticationandtheotherkeyfunctionareproposed.2)UsingIQmessagemechanisminXMPPtocontroltheaudio/videotransportationbetweenClientandRed5Server.ThestatusofvideoconferenceroomiscontrolledbyPresencemessage.Andthepointtopointvideoconference,message,filetransferandmultipointvideoconference,message,whiteboardfeaturesarerealized.3)Whenoneuserisrunningvideoconference,theClientneedtobekepttherealtimeconnectionwithServerallthetimetoexchangeinformationeachother.InordertoensurethattheServercanprocessthedisconnectedaccidenttimely,theHeartbeatmechanismbetweenClientandServerwasdesignedbyusingPresencemessage.4)IntheVideoConferenceSystem,themostimportantproblemishowtosolvethebandwidthconsumptioninaudio/videotransportationprocess,andhowtousethebandwidthresourceofRed5Serverreasonably.Sothatinthispaperthreewaysare 东华大学硕士研究生学位论文ABSTRACTproposed:thebandwidthofeachVideoConferenceRoomismanagedandassignedbyServer,thequalityofaudio/videotransmissionisadjusteddynamicallyaccordingtonetworkstatusonclientandthelayeredaudio/vidcotechnology.Byusingthesemethods,thesystemcanbereducedthebandwidthconsumptionandimprovedthebandwidthutilizationeffectively.Inthispaper,byresearchingtheXMPPandRed5,anetworkvideoconferencesolutionbasedonthemisproposed.Afterthedevelopmentandtesting,ithasbeenprovedbeasolutionwithlowcostandhighdevelopmentefficiency.Becausethesystem’SarchitectureisbasedonXMPP,ithasstrongscalabilityandopenness.ItcanbeeasilyextendedwithotherapplicationsandcommunicatedwithotherIMsystems.Aunifiedplatformcanbeachievedbythissolution.Keywords:XMPBRed5,Flash,VideoConferenceFANJun(ComputerSoRwareandTheory)SupervisedbyZENGPei-feng 东华大学硕士研究生学位论文目录目录l绪论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.1课题研究背景及意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。l1.2国内外研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..21.3视频会议系统的类型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一21.4本文主要内容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。32XMPP协议研究⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.72.1XMPP协议架构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯72.2XMPP地址结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯82.3XMPP消息格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.4XMPP通信流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯102.5XMPP协议的优势⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.122.6本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯123流媒体技术分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..143.1流媒体的基本概念⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.2流媒体的传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯163.3Red5流媒体服务器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯163-4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯184基于XMPP和Red5的网络视频会议系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..204.1系统概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯204.2系统的业务处理流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯234.3客户端与服务器之间的音视频传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯304.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯325视频会议实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一335.1点对点视频会议实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯335.2多人视频会议实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯345.3客户端与服务器之间的心跳机制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯385.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯39 东华大学硕士研究生学位论文目录6视频会议的带宽管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一406.1采用Flash作为传输媒介的缺陷⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.406.2带宽管理控制的改进方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.406.3改进后的性能分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯456.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯467总结与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..477.1课题研究工作总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯477.2课题研究展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯48参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯49攻读硕士学位期间发表的学术论文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..52致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..53 东华大学硕士研究生学位论文插图索弓插图索引图1-1视频会议系统结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4图2.1XMPP体系架构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7图2.2XMPP的安全层结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..11图4.1系统架构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.20图4.2服务器端结构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.2l图4.3客户端结构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.22图4-4消息分发和处理流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.23图4-5实体消息Message处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.24图4-6在线状态消息处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.25图4.7信息查询消息处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.26图4.8客户端登录服务器认证流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.27图4.9文件传输请求流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.28图4.10文件传输方式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯29图5.1点对点视频会议请求流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.33图5.2点对点视频会议关闭流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.34图5.3交互式电子白板⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.35图5.4新建多人视频会议室⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.36图5.5加入多人视频会议室⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.37图5-6退出多人视频会议室⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.37图5.7关闭多人视频会议室⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.38图6-1服务器带宽分配算法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.41图6.2麦克风实时监控流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.44 东华大学硕士研究生学位论文表格索弓表格索引表6.1改进前后带宽消耗对比⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.45 东华大学硕士研究生学位论文l绪论1绪论早期的即时通信系统是为了满足人们娱乐的需求。但在如今新的经济竞争环境下,现代企业的工作节奏越来越快,对沟通效率的要求也越来越高。特别是企业内部各种团队的协调沟通必须即刻达成,否则将影响项目的整体进度。因此,越来越多的国内外企业开始关注即时通信产品,它们看中的是其降低交流成本、提高沟通效率的巨大优势。能够跨越物理空间的距离、实现即时交流是即时通信系统最吸引企业之处。网络视频会议系统无疑是企业中沟通效率最快,以及可以真正实现零距离的即时通信系统。1.1课题研究背景及意义视频会议【1]tel(videoConference)系统也被称为电视会议系统,是一种能把声音、图像、文本等多种信息从一个地方传送到另一个地方的通信系统。视频会议系统可以使身处两个或多个会场的与会者既能听到其他与会者的声音,又能直观地看到其他与会者的视频图像,甚至是发言者的神态表情等。与会者也可以通过图像通信方式发表各自的意见,观察对方的形象和有关信息或出示实物、图纸等增强临场感,还可以通过传真或共享电子白板等及时传送相关文件、图表或讨论问题等,从而缩短与会者之间的距离,改善会议气氛,使与会者都能如身临其境般的进行会议,能够提高工作效率,降低远距离的会议成本。视频会议系统是集通信技术、计算机技术、微电子技术于一体的远程异地通信系统,是一种典型的语音和图像通信系统。在通信的发送端,将图像和声音信号转变成数字化信号,接收端再把信号重现为视觉和听觉可获取的图像和声音信息。与电话会议系统相比,视频会议具有直观性强和信息量大的优点【3】。如今,网络视频会议系统市场的发展日趋多元化,随着用户群的不断增加,视频会议市场规模日益扩大,在需求方面,已经由最初的政府和邮电、电信行业用户发展到司法、银行、证券、保险、教育、医疗、税务、厂矿企业等各行各业;并且当前网络视频会议系统的应用范围也更加广泛,已由最初简单的政府会议发展到包括企业会议、远程医疗、远程教学以及培训、远程监控、军事指挥、电信运营等多种形式。XMPP(ExtensibleMessagingandPresenceProtoc01)协议14J是一个开放的基于XML的数据模型的即时通信协议,采用分布式的网络体系结构,模块化可扩展的系统架构,使得基于它的开发和扩展功能异常简单。但XMPP协议的消息传输机制采用基于XML格式的字符串,它本身对音视频功能的支持有限。而Red5t习作为一款采用JAVA语言编写的开源的流媒体服务器,为程序员提供了良好的开发和运行环境,数据的传输机制、压缩、解压、客户端环境获取摄像头等硬件问 东华大学硕士研究生学位论文l绪论题不是Red5开发者所需要考虑的,Red5服务器提供的API可以对这些对象直接调用,这样开发人员可以把更多的精力投入到项目的设计分析、流程的逻辑处理和系统建设上,更好地满足用户需求。Red5主要是起到了视频会议中从一个客户端到另外一个客户端数据流的中继器的作用。因此本文提出基于扩展性良好的XMPP协议,并结合Red5强大的流媒体编解码和传输功能的视频会议系统解决方案,该方案简便高效,有着很高的实用价值和发展潜力。1.2国内外研究现状目前,国内外许多学者对即时通信系统进行了深入的研究。文献【6】中比较了软硬件视频会议系统的区别,分析了视频会议系统的设计原则和功能需求并给出了视频会议系统的网络结构。仲元昌等讨论了视频会议系统中的关键技术,利用软件与虚拟技术的强大功能,实现了一种基于H.323协议的视频会议系统【_丌。文献【8】中分析了Red5流媒体服务器的架构,给出了一种基于Flash的视频会议系统设计方案。朱建军等分析了Java媒体框架应用编程接口,采用RTP协议,实现了基于JMF(JavaMediaFramework)的音视频网络会议系统【引。文献【loj分析了XMPP协议,给出了XMPP系统的客户端和服务器端的设计方案以及认证、会话管理、消息传输的实现。文献【ll】中讨论了XMPP协议的架构以及工作原理,给出了基于XMPP协议的即时通信系统模型。侯可等人在文献【12】中分析了XMPP协议的优势,给出了基于XMPP协议的客户端和服务器的实现方法以及与其他协议的即时通信系统互联互通的实现原理。文献【13】【14】【15】中讨论了基于XMPP协议的文件传输的实现方法,给出了点对点、代理服务器以及带内传输三种文件传输方法。邹李兵等人研究了Red5流媒体服务器在XMPP协议中的应用,并给出了点对点视频传输的实现方法和控制流程【16”】。在文献【18】【19】中,讨论了Flash和RIA技术,并分析了Red5流媒体服务器,最后给出了基于Red5的在线电子白板的设计与实现方法。1.3视频会议系统的类型1)根据会议节点数目的不同分类【20】视频会议系统分为点对点视频会议系统和多点视频会议系统。点对点视频会议系统应用于两个通讯节点之间,多点视频会议系统应用于多个节点之间的通讯。2)根据技术支持的类型不同分类【201视频会议系统可分为基于线路的视频会议系统和基于分组的视频会议系统,但现在两者间的界限越来越模糊。基于线路的视频会议系统,也称为常规编解码2 东华大学硕士研究生学位论文l绪论系统。依照专用线路提供一个确定的比特率,诸如专用线路交换服务,基于分组的视频会议系统是从分组视频通话系统演化而来的。3)从通信网络(或传输介质)角度分类【20】这是一种最直观、最简单、也是最通用的分类方法。支持视频会议系统的通信网络有很多,而且各种通信网络均有其各自独特的特性,从而导致了在不同通信网络上视频会议系统设计和部署的差异性。通信网络实际上有很多种,但从其结构的本质分,只有几种,即:通用电话网(POTS:Plain01dTelephoneService)、局域网(LAY:LocalAreaNetwork)、综合业务数字网(ISDN:IntegratedServicesDigitalNetwork)、异步传输网(ATM:AsynchronousTransferMode)、因特网(Intemet)。这样,就形成了5种视频会议系统,即基于POTS、LAN、ISDN、ATM和Intemet的视频会议系统。4)根据所选的终端类型不同分类【20】视频会议系统又可分为桌面视频会议系统、会议室型视频会议系统和可视电话系统。1.4本文主要内容1.4.1研究内容视频会议系统是多方与会者通过网络传输通道以及多媒体设备,将声音、影像及文件资料等信息互传,达到即时互动沟通的网络通信系统,是一种典型的实时图像通信系统。本文研究的基于XMPP的视频会议系统采用客户端和服务器模式来实现,包括视频会议系统的客户端,视频会议系统的指令控制服务器以及用于视频传输的视频服务器,系统结构如图1.1所示:3 东华大学硕士研究生学位论文1绪论指令控制服务器视频传输服务器与会人与会人图1-1视频会议系统结构据图1.1描述所示,视频会议系统的客户端主要用于收集视频会议的与会人的文字、声音、图像等信息以及向服务器发送各种请求或者控制指令。指令控制系统即视频会议系统的服务器端,负责客户端之间各种请求的处理以及视频会议的消息控制等。视频传输服务器用于视频会议中的音/视频的转发和传输。本文中要实现基于XMPP和Red5的网络视频会议系统,需要对如下内容进行研究:1)基于XMPP的指令控制服务器主要负责处理客户端的登录鉴权、用户的注册和编辑、路由客户端之间的文本消息、各种请求以及控制视频会议中音视频通信。2)基于Red5流媒体服务器构建视频会议系统的音视频传输服务器音视频服务器作为视频会议的中转站,负责音视频流的转发和传输,客户端将音视频流发布到Red5视频服务器,再连接Red5视频服务器播放其他客户端的音视频流。3)客户端与服务器之间的消息传输机制客户端向服务器发送登录、创建会议室、文件传输等各种请求消息,以及服务器如何进行消息的传输和控制。4)客户端与服务器之间的音视频传输机制每个客户端都要把本地的音视频发送给其他客户端,同时也要接收其他客户端传送来的音视频,如何更有效的进行音视频流的传送和接收以及客户端与服务器之间传输音视频的消息控制是本文重点研究的内容。5)客户端与服务器之问传输带宽的管理和控制4 东华大学硕士研究生学位论文1绪论在进行网络视频会议时,客户端和服务器的网络状态不能一直保持处于高质量,音视频传输的质量都要受到网络状态的影响,所以服务器如何有效的管理和分配服务器的带宽资源,以及如何在有限的网络带宽下保证视频会议的正常进行,也是本文必须要研究和解决的问题。1.4.2研究方法1)调查各种视频传输以及XMPP的相关技术,了解网络视频传输中的相关技术,XMPP协议,Flash协议,Red5视频传输服务器,RTMP协议等等,完成论文和系统的规划。2)研究Red5开源视频传输服务器,用于从客户端接收和向客户端传送视频数据。3)研究基于XMPP的指令控制服务器,用于控制客户端以及与视频服务器之间的通信。4)研究视频服务器的客户端,用于播放会议视频以及采集与会人的视频和音频。5)研究客户端与服务器之间传输带宽的管理和分配算法,充分利用有限的带宽资源。1.4.3研究目标1)基于Red5构建出视频会议系统的音视频传输服务器2)实现基于XMPP的视频会议系统的指令控制服务器3)实现基于XMPP的网络视频会议系统的客户端4)实现点对点视频会议和多人视频会议5)提出客户端与服务器之间带宽管理和控制的几种方法1.4.4本文结构1)课题的研究意义以及研究现状讨论了基于XMPP和Red5的网络视频会议系统的研究意义,以及网络视频会议系统在国内外的发展趋势以及视频会议系统的分类。21XMPP协议研究本章节研究了XMPP协议的体系架构、地址结构、消息格式以及XMPP协议的通信流程,并分析了XMPP协议相比其他IM协议的优势。31流媒体概述本章节讨论了流媒体的基本概念,包括流媒体的定义、实现过程、发布形式以及流媒体的传输方法和协议,最后介绍了Red5流媒体服务器的相关技术。41基于XMPP和Red5的网络视频会议系统5 东华大学硕士研究生学位论文1绪论首先研究了基于XMPP和Red5的网络视频会议系统的实现方法,给出了系统的架构以及视频会议系统的各种控制流程,实现了视频会议系统中的会话管理和消息分发、消息处理、用户登录和认证、文件传输、服务器联系人列表管理以及在线状态通知订阅,同时也给出了视频会议系统中音视频的传输方案5)视频会议的实现给出了点对点视频会议和多人视频会议中的文本消息传输、文件传输、交互式电子白板、音视频会议中的实现方法以及消息控制的工作流程。最后提出了客户端与服务器之间的心跳机制提高系统运行的稳定性。国视频会议的带宽管理针对Flash技术的缺陷,提出了服务器端视频会议室带宽的管理和分配算法、客户端根据网速动态调整音视频传输质量以及音视频分层技术,降低了带宽消耗并最大限度的利用带宽资源。7)总结与展望总结本文所提出的方法,同时展望在未来的研究中有待深入拓展的方向。6 东华大学硕士研究生学位论文2)MPP协议研究2XMPP协议研究XMPP协议最初是由Jabber组织提出并负责维护,首个Jabber应用开发于1998年,截至目前,互联网上已经拥有数以万计的Jabber服务器和数以百万的客户端。IETF已将Jabber定义为即时通信和现场技术的标准协议,并更名为XMPP。XMPP协议是一个基于XML数据模型的开放的即时通信协议,XMPP协议的提出,实现了互联网上多种即时通信系统的互联互通。有了XMPP这个统一的协议标准后,任何一个通信系统的用户都能与其他通信系统的用户无障碍的进行沟通和交流。如今,越来越多的用户采用基于XMPP协议的即时通信系统,并且XMPP协议也得到了许多公司和国际组织的支持,因此XMPP协议有着极好的应用前景。、、2.1XMPP协议架构图2-1XMPP体系架构图如图2.1所示,XMPP协议是客户端和服务器的系统架构【211,从一个客户端到另一个客户端之间的通信必须通过XMPP服务器。由于XMPP协议的可扩展性,XMPP协议也可以通过协议网关的转换与非XMPP协议的客户端或者服务器进行通信。XMPP体系中包括3个实体,分别为XMPP客户端、XMPP服务器以及协议网关。2.1.1XMPP客户端XMPP协议的一个标准是系统必须能够支持简单的客户端。实际上,XMPP协议架构对客户端很少限制。XMPP客户端要支持的功能瞄】有:1)通过TCP套接字与XMPP服务器进行通信;21解析组织好的XML信息包;3)解析消息数据类型。XMPP将复杂的处理从客户端移植到服务器端,这使得客户端开发非常容易,开发新的系统功能也同样变得简单。客户端与服务端通过XML流在TCP7 东华大学硕士研究生学位论文2)qdPP协议研究套接字的5222端口进行实时通信,而不是客户端之间直接进行通信。在实际开发和应用中,许多客户端功能已经包含在XMPP客户端基础类库中,这样可以使客户端的开发人员更多的注重用户界面和增值功能的开发。2.1.2XMPP服务器XMPP服务器要遵循两个主要法则【23】:1)监听客户端连接,并直接与客户端应用程序通信;2)与其他XMPP服务器通信;XMPP服务器通常被设计成模块化,由各个不同的代码库构成。这些代码库分别处理Session管理、客户端和服务器之间的通信、服务器之间的通信、DNS(DomainNameSystem)转换、存储用户的个人信息和好友名单、保留用户在下线后收到的信息、用户注册、用户的身份和权限认证、根据用户的需求过滤信息和系统记录等。此外,服务器还可以通过附加服务功能来进行扩展,如完整的安全策略,允许服务器组件的连接或者客户端选择通向其他消息系统的网关。2.1.3协议网关XMPP最突出的优势就是可以和其他即时通信协议系统交换信息和用户在线状态。由于通信协议的不同,XMPP和其他系统交换信息必须通过协议网关的转换来实现,目前几种主流即时通信协议都没有公开,因此XMPP服务器本身并没有实现和其他协议的转换,但它的架构允许转换的实现。实现这个特殊功能的服务端在XMPP架构里被称为网关(gateway)【241。目前,XMPP协议已经实现了和AIM、ICQ、IRC、MSNMessenger和YahooMessenger的协议转换。由于协议网关的存在,XMPP架构事实上已经兼容所有其他即时通信网络,这无疑大大提高了XMPP的灵活性和可扩展性。2.2XMPP地址结构在XMPP体系架构中,每个实体都有相应的Jabberidentifier(JID)[2引,即实体地址。.1iD是唯一确定进行即时消息和在现状态信息通信的独立对象,也可用来兼容其他的即时通信系统。系统中所有的实体地址都有统一的格式,一个有效的实体地址JID共包括3个元素:1)域名(domainidentifier)必须是唯一的,通常代表网关或主服务器。域名必须是定义在IDNA(IntemationalizingDomainNamesinApplications)上的国际化域名,域名能被DNS解析并能查找出XMPP服务器的具体位置。2)节点(nodeidentifieO8 东华大学硕士研究生学位论文2)OdPP协议研究是可选的、以’@’分割放在域名之前,通常是一个使用网络服务的实体(例如:一个客户端,此时用来标志一个用户,相当一个用户名),或其他类型的实体(提供多个用户服务的聊天室)。3)资源(resourceidentifier)是一个可选的标识符,放在域名之后,并以’/.分割,通常代表一个特定会话、连接(例如:一个设备或位置)或属于带有节点名的对象(例如:在多用户聊天室的一个参与者)。由客户端按照一定的语法定义。JID的语法如下:JID=【node”@”】domain【II/”resource】例如:peter@xmppserver.com/contact,就是一个实体的JID。XMPP服务器都有自己的域名,,节点表示用户名或服务等,资源用来识别属于用户的位置或设备等,一个用户可以同时以多种资源形式与同一个XMPP服务器连接和通信。2.3Ⅺ汩P消息格式XMPP协议是以XMLl261为基础,在网络上分片向服务器发送XML流的协议,它不仅可以传输简单的文本,还可以传输复杂的数据结构以及各种格式的文件:不仅可以进行人与人之间的交流,也可以实现软件与软件或者人与软件之间的交流。它的这种特性极大的扩展了即时通信的应用。在XMPP协议中,客户端和服务器进行通信时,每次发送的消息包括XML流和XML节。XML流是一个容器,包含了两个实体之间通过网络交换的XML元素。是由一个XML打开标签(包含适当的属性和名字空间声明)开始,流的结尾则是一个XML关闭标签</stream>。在流的整个生命周期,初始化它的实体可以通过流发送大量的XML元素,使接收实体和初始实体交换信息,接收实体必须发起一个反向的握手应答该流。XML节是从会话的一端向另一端发送的具有语义的结构数据单元。它直接位于的子层,从它的开始标签,一直到结束标签,就是一个语义单元。XMPP协议定义了仅有的三个XML节:以及。它们同时是XMPP协议的三种基本通信机制127J:1)基于push的通信机制:Message类型的通信;2)基于Subscribe.publish的广播通信机制:Presence类型的通信;31基于Request.Response的通信机制:I/Q类型的通信。每种通信机制都可以通过属性,名字空间和子节点包含大量数据,其属性、名字空间和子节点都是XMPP协议的组成部分。9 东华大学硕士研究生学位论文2)aullaP协议研究2.3.1用来包含两个XMPP用户之间发送的消息,如果用户在线就立即提交,否则存储消息。结构如下所示:你好!</body></message>2.3.2此元素确定用户的状态,比如在线、忙碌、离开等。结构如下所示:itway</show>online</status></presence>2.3.3此元素管理XMPP服务器上任何两个用户间的转换,允许他们通过相应的XML格式的查询和响应。结构如下所示:</iq>2.4XMPP通信流程2.4.1寻址机制在XMPP系统里,有许多不同的实体需要互相通信,这些实体可以是一个消息系统的客户端,也可以是聊天室或一个XMPP用户。每个实体都有一个唯一的地址,被称为JabberIdentifier或JID。一个合法的JID包括一组元素,包括域名(domainidentifier)[281,节点名(nodeidentifier)和资源名(resourceidentifier)。Jabber标识符(Identifier)是内外结合的,用于表示用户身份或路由信息。Jabber标识符的关键特性包括:1)唯一确定进行即时消息和在线信息状态通信的独立对象或实体;2)用户很容易记住它们并在真实世界中进行表达;3)可以包容其它即时通信和在线信息状态表。10 东华大学硕士研究生学位论文2潮PP协议研究在XMPP中,每一个在线的用户都可以在他的账号后附加一个资源,资源作为一个字符串被添加到Jabber标识符中,例如peter@xmpp.corn/office或peter@xmpp.corn/home,资源被服务器用来区分连接。每个资源关联了一个优先权,优先权由登陆用户在客户端自己设置,用正整数来表示。服务器用来决定一条消息应该发往哪个客户端,取值越大,优先权就越高。如果一个资源的优先权是“5”,另一个是“l”,那么消息将发往优先权是“5’’的资源。对每个用户来说,它的每个资源都必须是唯一的。例如,两个不同的用户都可以使用“home”资源,但是同一个用户不能同时使用“home”资源在线。2.4.2通信流程在XMPP体系中,客户端与服务器、服务器与服务器之间在交换信息之前需要建立通信信道。为了确保流的安全传输,首先需要进行TLS(TransportLayerSecurity)[29】协商,当协商成功后再进行SASL(SimpleAuthenticationandSecurityLayer)[30】协商,SASL协商成功后进行会话链接,资源绑定,获得好友列表等过程。图2.2显示了XMPP的安全层结构。图2.2XMPP的安全层结构为了保证会话信息不被恶意的篡改和偷听,XMPP采用了TLS机制。TLS用于在两个通信应用程序之间提供保密性和数据完整性,协议分为两层:1)上层:TLS握手协议。2)底层:TLS记录协议。TLS握手协议用于客户端和服务器相互验证,协商加密和MAC算法以及保密密钥,保护TLS记录发送的数据。TLS记录协议建立在可靠的传输协议TCP之上,用来封装高层的协议,在客户端和服务器之间传输高层应用数据和TLS控制数据,并对数据进行分段或者组合,最多能够传送16384个字节的数据块,它提供连接安全性,有两个特点:1)保密性,采用对称加密算法。2)完整性,采用HMAC算法。TLS的最大优点在于独立于应用协议。高层协议可以透明地分布在TLS协议上面。但是,TLS标准并没有规定应用程序如何在TLS协议上增加安全性,而是把如何启动TLS握手协议以及如何解释交换的认证证书的决定权留给协议的设计者或实施者来判断。 东华大学硕士研究生学位论文2)MPP协议研究客户端与服务器进行通信时,如果都打开了TLS机制,在进入用户认证和真正的会话之前,必须先进行TLS协商,过程如下:1)客户端、服务器都打开;2)服务器以STARTTLS扩展标签予以答复,在答复中要包含所支持的认证机制;3)用户答复STARTTLS并等待服务器的进一步指示;∞服务器回复标签指示客户端按照前面所示机制在TCP连接上进行TLS协商;5、)若协商成功,客户端、服务器都打开一个新的,否则关闭。为了认证会话的合法性,XMPP协议采用了简单认证和安全层协议(SASL)的方法。当成功进行TLS协商并已经发出新的头之后,服务器发出消息指示客户端将会使用的认证机制,客户端在所列机制中选则一个并以通知服务器端,接着客户端与服务器就进行SASL协商。2.5XMPP协议的优势XMPP的技术优点【311【321可以归纳为以下几点:1)开放性:协议是免费的、开放的、公有的、易于被理解的协议;同时还拥有多种客户端、服务器、组件与代码库的实现,其中大部分都是开源代码。2、)可靠性:从1998年XMPP被开发至今已经相当稳定,有数以千计的开发人员在XMPP技术上工作,有数以万计的XMPP服务器在互联网上运行,有百万计的用户在使用XMPP即时通信系统。3)分布式:XMPP的框架与Email类似,每个用户都可以运行独立的XMPP服务器,来进行他们组织自己的IM体验。4)安全性:任何一个XMPP服务器都与公共的XMPP网络独立,通过SASL与TLS来建立安全连接,安全机制已经内置在XMPP的核心协议里。5)可扩展性:基于XML的XMPP协议可以很容易地让用户在其上面进行功能的扩展。6)灵活性:XMPP系统不仅可以作为IM系统,还可以用来进行网络管理、内容同步、协同工具、文件共享、游戏与远程系统监控等。2.6本章小结本章首先分析了XMPP协议的架构,分析了XMPP客户端、服务器端以及12 东华大学硕士研究生学位论文2)M阳协议研究协议网关的作用和功能。接着分析了XMPP协议的地址结构和消息格式以及XMPP协议中的通信流程,最后给出了XMPP协议在IM协议中的优势。由于XMPP协议的可扩展性和开放性,因此在网络视频会议系统中,采用XMPP协议作为系统的消息传输协议是非常有价值的,可以很容易在此基础上扩展各种应用。13 东华大学硕士研究生学位论文3流媒体技术分析3流媒体技术分析流媒体技术起源于窄带互联网时期。1994年,美国ProgressweNetworks公司的成立标志着流媒体技术发展的开始。1995年,该公司推出了基于C/S架构的音频接收系统RealAudio,并在随后的几年内引领了网络流式技术的发展。1997年9月,该公司更名为RealNetworks,并相继发布了多款应用非常广泛的流媒体播放器RealPlayer系列,在其鼎盛时期,曾一度占据该领域超过85%的市场份额。RealNetworks公司是流媒体技术真正意义上的始祖。随后微软和苹果公司等都意识到流媒体技术的广阔应用前景,引发了强大的市场竞争,促进了流媒体技术的迅速发展,使得流媒体技术应用空前广泛。早期的流媒体技术主要是应用在窄带互联网上,受带宽条件的制约。直到1999年,人们在网上也才仅仅可以看到一个很小的视频播放窗口。2000年下半年,随着全球范围内的互联网升温,宽带IP网成为现实,作为流媒体技术倡导者和发起者的美国ReflNetworks、微软和苹果等公司几乎同时向世界宣布了他们应用在宽带互联网上最新的流媒体技术解决方案。在短短的时间里,流媒体技术有了飞跃性发展。如今,流媒体的发展我们已有目共睹,我们完全可以在网络上进行全方位的视听接触。3.1流媒体的基本概念3.1.1流媒体的定义流媒体【33】是从英语StreamingMedia中翻译过来,它是一种可以使音频、视频和其他多媒体文件能在In.met及Intranet上以实时的、无需下载等待的方式进行播放的技术。简单来说就是应用流媒体技术在网络上传输多媒体文件,而流媒体技术就是把连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己的机器后才可以观看的网络传输技术。该技术先在使用者端的电脑上创造一个缓冲区,于播放前预先下载一段资料作为缓冲,当网络实际连线速度小于播放所耗用资料的速度时,播放程序就会取用这一小段缓冲区内的资料,避免播放的中断,也使得播放品质得以维持。流媒体技术是一个综合的技术,它包括信息的采集、编码、传输、储存、解码等多项技术。一般来说,流包含两种含义,广义上的流是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,我们习惯上称之为流媒体系统;而狭义上的流是相对于传统的下载.回放(Download.Playback)方式而言的一种媒体格式。14 东华大学硕士研究生学位论文3流媒体技术分析3.1.2实现过程流媒体的实现包括制作、发布、传输和播放四个过程【蚓:1)制作:运用编码工具,将采集到的音频视频信号进行压缩编码,转换成流格式,减小文件大小,降低对存储空间和网络带宽的要求。2)发布:在普通的多媒体文件中加入流式信息以适合流式传输,采用专门的流媒体发布平台,完成流媒体的发布。3)传输:流媒体传输的实现需要合适的传输协议。一般采用RTMP协议来传输控制信息,而用RTP、RTCP、RTSP等网络协议传输实时流媒体数据。4)播放:流媒体传输到本地后,首先进行缓冲以减小延迟和抖动的影响,并保证数据包的顺序正确,之后进行音/视频数据解码,采用同步算法,保证流媒体的正常播放。3.1.3网络发布方式流媒体的网络发布主要有点播和广播两种形式【341。1)点播将制作好的流媒体节目存储在媒体服务器上,该媒体服务器可以是流媒体服务器也可以是普通的Web服务器。用户可以在任何需要的时候用浏览器来播放流媒体文件。如果媒体文件存储在流媒体服务器上,还可以任意进行前进、倒退、停止等操作,播放不会受到影响。但如果媒体文件存储在Web服务器上,由于Web服务器不支持流媒体文件的内部时间线,以及不接收流媒体播放器的播放反馈,因此不能进行快进操作,也就是说当用户拖动快进按钮时,播放会停止,Web服务器继续下载需要的数据,直到接收到快进按钮所指的时间位置的数据时,才能继续播放。2)广播可分为实时广播和非实时广播两种:实时广播:顾名思义,用户收看的是现场发生的事件,例如在网站上收看电视节目的直播。由于是实时的节目,自然不能进行快进等操作。而且,用于实时广播的媒体服务器只能是流媒体服务器,普通的Web服务器不能实现这种功能。非实时广播:由媒体服务器将制作好的流媒体文件在特定时间同时向预定的多个用户传送。与实时广播相同的是用户同样只能在特定的时间收看特定的内容,同样不能进行快进操作。不同的是收看的是预先制作好的节目,不是现场直播的节目。15 东华大学硕士研究生学位论文3流媒体技术分析3.2流媒体的传输3.2.1流媒体传输方法在网络上传输音/视频等多媒体信息目前主要有下载和流式传输两种方案。音/视频文件通常都比较大,所以需要的存储容量也较大,同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。而流式媒体就是指在Intemet/Intranet中使用流式传输技术的连续媒体信息,如声音、影像或动画等媒体信息,由音/视频服务器向用户计算机连续、实时传送,用户不必等到整个文件全部下载完毕,而只需要经过几秒或几十秒的启动延迟即可进行观看。当声音等媒体在客户机上播放时,文件的剩余部分将在后台服务器内继续下载:‘流式不仅使启动延迟成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载完全才能观看的缺点。流媒体实现的关键技术就是流式传输。流式传输定义很广泛,现在主要指通过网络传送音视频等媒体的技术总称,其特定含义为通过Intemet将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(RealTimeStreaming)p5J和顺序流式传输(Progressivestreaming)。一般来说,视频为实时广播、使用流式传输媒体服务器、应用如RTMP(RealTimeMessagingProtoc01)p6】的实时协议,即为实时流式传输。使用Hr丌P服务器作为媒体服务器,文件即通过顺序流方式发送。采用具体哪种传输方法可根据用户的需求,当然,流式文件也支持在播放前完全下载到硬盘。3.2.2R,卟佃协议流媒体在网络上传输必须涉及到网络传输协议,只有采用合适的协议才能的发挥流媒体传输的作用。RTMP实时消息传送协议,是专门为Flash播放器和服务器之间高效传输视频、音频等数据而设计开发的私有协议。可用于Flash中的对象、视频、音频传输,协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议类似一个装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道传输的数据包的大小是都固定的。3.3Red5流媒体服务器Red5是一款采用JA、,A语言编写的开源的流媒体服务器,与FMS类似,提供基于Flash的流媒体服务。使用RTMP(RealTimeMessagingProtoc01)实时消息传送协议,把音频(MP3)和视频(FLV)转换成播放流。有实时录制客户端流为FLV16 东华大学硕士研究生学位论文3流媒体技术分析文件,共享对象,实时视频播放,Remoting等功能。Red5作为流媒体服务器,具有开发效率高、占用带宽低、传输效率高和开发成本低等优势【371。3.3.1Flash简介Flash[38】最初是作为一款矢量图动画设计开发软件发布的。现在已经普及于网络,但它的应用已经脱离了纯粹的动画设计,广泛应用到了网站动画、互动多媒体、游戏设计、企业级程序应用、移动设备程序应用。这些应用都可以概括到RIA(RichIntemetApplication)139】应用,在RIA应用上,通过Flash相关技术架构,可以充分把Flash处理多媒体的丰富功能跟数据库结合起来,提供良好的客户端操作环境,具备跨平台、实时响应等特点,而这些应用仅要求客户端具备浏览器并搭配FlashPlayer。已经有相当多的网站或者应用软件采用Flash丰富的多媒体功能,目前Flash已经普及到了绝大多数互联网终端,并且越来越多的移动设备开始支持Flash。Flash的强大功能如下:⋯1)ActionScript:采用具有高级抽象功能、基于标准JavaScript语言的简单对象模型,控制客户端和服务器上的逻辑。2)预置组件库:方便的拖放组件以创建标准应用程序。3)可视化设计元件:可修改组件以满足站点设计条件,并允许添加自定义元件。4)强大的脚本功能:自定义组件源代码,或开发用户自己的源代码以创建更加广泛的应用程序。5)辅助工具的支持:集成的HTML帮助、新客户端脚本对象的代码提示和高度工具。6)网络连接调试工具:可以监控流媒体服务器和.Flash客户端之间的连接状态。3.3.2Red5可提供的接口Red5流媒体服务器提供了两部分APIt401,包括客户端API和服务器端API。客户端包括Camera(摄像头)、Microphone(麦克风)、NetConnection(联机)、NetStream(串流)、SharedObject(共享对象)和Video(视频)。服务器端包括:Application(应用程序)、Client(客户端)、NetConnection(联机)、SharedObject(共享对象)和Stream(串流)。11客户端对象如下:Camera对象:从客户端摄像头上捕捉视频并追加到任何一个Flash视频控件中,当将视频发布到Red5服务器上时,还可以在联机对象间传输,甚至录制捕捉到的视频。17 东华大学硕士研究生学位论文3流媒体技术分析Microphone对象:该对象用于取得麦克风中输入的声音信号,并且可以在联机对象之间传输、播放等,可以开发语音聊天之类的应用程序,如果不使用联机对象,也可以把声音通过扬声器在本地系统中输出。NetConnection对象:允许Flash客户端通过TCPsocket与Red5服务器建立连接,并且使用RTMP协议交互数据。NetStream对象:在使用NetConnection所建立的联机对象的基础上,进行数据、声音和视频信息的传输,就像NetConnection的通道一样。通过调用NetStream.publish方法来发步音视频数据流,调用NetStream.play来播放远程流媒体服务器上的数据流。LocalShared对象:保存用户的资料,或者把信息实时传递给所有联机用户。Video对象:用于显示通过NetStream.play方法或Camera.get方法捕捉到的。视频流,通过Video.attachVideo方法把该视频对象放置到flash的舞台。2)服务器端包括如下对象:Application对象:包含应用程序实体的信息与状态,直到程序结束,该对象也可以让程序决定是否接收用户的联机或者关闭用户的联机、清除应用程序特定的流、清除在服务器端的共享对象,以及让程序员在有效范围内访问整个应用程序的变量、定义相关事件所执行的函数等。Client对象:包含每个联机用户的信息,如每个客户端的IP地址、Flash的版本信息、分配用户的频宽以及呼叫客户端的方法等。NetConnection对象:可以在应用程序实体和服务器端,或者同一台服务器的另外一个应用程序之间创建一种双向的连接。甚至可以使用服务器端的NetConnection对象来创建更强大的应用程序,例如一台流媒体服务器从另外一台流媒体服务器获取或者共享信息。联机对象采用标准的H盯曙协议或者RTMP协议在服务器之间交互和传递数据。RemoteShared对象:远程共享对象是在客户端建立的,但在服务器端仍然可以调用,可以实时地在客户端的多个应用程序之间共享和存储数据。SharedObject对象:作用和客户端建立的远程共享对象RemoteShared一样,让不同联机用户能够通过服务器端的共享对象实时分享信息。但所提供的方法和客户端的稍有区别。Stream对象:处理音视频串流,返回录像文件的时间秒数、呼叫客户端音视频串流象中的播放、录像以及其他自定义方法。3.4本章小结本章介绍了流媒体技术的基本概念,包括流媒体的定义、实现的过程、网络18 东华大学硕士研究生学位论文3流媒体技术分析发布形式以及流媒体的传输方法和协议。最后介绍了Red5视频服务器的相关概念,以及Flash技术的基本概念、Red5主要的API接口等。19 东华大学硕士研究生学位论文4基于)刚只P和刚5的网络视频会议系统4基于XMPP和Red5的网络视频会议系统4.1系统概述视频会议系统是将分布在不同地点的与会者通过网络将各自的声音视频信号传送到其他与会者的计算机上,使分散在各处的与会者共聚一处,通过计算机和传输网络实现与会者声音和视频的面对面交流。对于某些硬件视频会议系统可以配置MCU(MultipointControlUnits)141】【42】多点控制单元,通过MCU对声音和视频信号进行专门的混合处理后再传送给各个与会者;对于软件视频会议系统来说,需要在视频会议系统的服务器端开发专门的音视频编解码模块,、进行声音和图像的处理,然后再传回给与会者。这两种方式的视频会议系统,在硬件设备开销方面成本较高,软件的开发工作量也较大。本文提出的基于XMPP和Red5的视频会议系统解决方案,利用XMPP协议的可扩展性,结合Red5视频服务器强大的flash流媒体的编解码和传输功能,实现视频会议系统中消息的控制、音视频传输和声音图像的处理,降低系统开发的工作量,提高开发效率。4.1.1系统体系架构议图4-1系统架构图网络视频会议系统采用C/S架构,整个系统包括客户端、XMPP服务器以及Red5视频服务器。如图4.1所示,客户端之间通信必须通过XMPP服务器端和Red5视频服务器端的中转,客户端和XMPP服务器之间通过Sockets技术【431传输基于XMPP协议的XML消息,客户端和Red5服务器之间使用RTMP传输协议传输音视频。Red5音视频服务器既可以和XMPP服务器配置在同一台机器上,也可以配置在不同的机器上。本文的视频会议系统中,只需修改Red5音视频服务器的IP地址即可。 东华大学硕士研究生学位论文4基于)洲1:9和刚5的网络视频会议系统4.1.2服务器端系统的服务器端配置一个XMPP服务器和一个Red5音视频服务器。XMPP服务器主要负责处理客户端的登录鉴权、用户的注册和编辑、路由客户端之间的文本消息和各种请求、控制音视频通信。Red5音视频服务器负责客户端之间音视频的转发和传输。每个客户端将本地的音视频流发布到服务器上,然后连接服务器播放某个客户端的音视频流。如下图4.2所示为服务器端的设计结构图:图4-2服务器端结构图1)监听模块:负责监听服务器端与客户端通信的10000端口,当监听到客户端发来的新消息时,监听模块将发来的信息包转交给会话管理模块。2)网络通信模块:负责发送XML流的信息包给客户端。3)会话管理模块:负责维护客户端与服务器之间的XML流连接,管理在线用户和视频会议室。4)XML解析模块:解析客户端发送来的XML流数据包,并将解析好的XMPP消息转交处理模块处理。5)协议封装模块:负责将服务器发送给客户端的XMPP消息,封装为XML流数据包,并将数据包转交会话管理模块,再调用网络通信模块发送给客户端。6)实体消息处理模块:负责处理和转发用户之间、视频会议室的文本消息和绘图消息。7)在线状态处理模块:负责处理用户的上下线、视频会议室的创建和取消以及用户加入和退出消息的路由和转发。81信息查询处理模块:负责处理用户之问的各种请求,以及视频会议室的各种请求消息。21 东华大学硕士研究生学位论文4基于)刚PP和刚5的网络视频会议系统9)成员管理:负责这册和编辑系统中的用户和用户组。10)管理界面:服务器模块的界面管理程序,开启停止监听服务、注册和编辑用户界面。11)数据库:存储用户和用户组的信息。12)Red5服务器:负责视频会议中音视频流的转发和传输。4.1.3客户端客户端包括XMPP客户端模块和Flash客户端模块。XMPP客户端模块的功能包括点对点的文字、文件、视频传输的控制;创建和加入多人文字讨论、电子白板、多人视频会议等。Flash客户端模块负责客户端与Red5之间的音视频传输,用AS脚本编写的flash发布本地和播放远程音视频流。如图4.3为客户端的结构图:1)2)314)5161麦克风监控|.·I管理界面Hr·asn模块I实体消息处理在线状态处理信息查询处理I协议封装模块删L解析模块会话管理模块I网络通信模块图4-3客户端结构图网络通信模块:负责发送和接收XML流的信息包给服务器端。会话管理模块:负责维护客户端与服务器之间的XML流连接。XML解析模块:解析服务器发送的XML流数据包,并将解析好的XMPP消息转交处理模块处理。协议封装模块:负责将客户端发送给服务器的XMPP消息,封装为XML流数据包,并将数据包转交会话管理模块,再调用网络通信模块发送给服务器。实体消息处理模块:负责处理和显示用户之间、视频会议室的文本消息和绘图消息。在线状态处理模块:负责处理用户的上下线、视频会议室的创建和取消 东华大学硕士研究生学位论文4基于)口dPP和刚5的阿络视频会议系统以及用户加入和退出消息。7)信息查询处理模块:负责处理用户之间的各种请求,以及视频会议室的各种请求消息。8)管理界面:服务器模块的界面管理程序,包括主窗口、点对点聊天窗口、视频会议室窗口以及客户端配置窗口等。9)Flash模块:负责获取本地音视频流上传到Red5服务器,并播放远程用户的音视频流。4.2系统的业务处理流程4.2.1会话管理和消息分发流程在XMPP协议中,一个客户端与服务器之间的会话包含两个XML流,分别为从客户端到服务器端的流以及从服务器端到客户端的流。会话管理模块负责管理和维护客户端与服务器之间的XML流连接,处理XML消息包的传输,包括三种消息类型,分别为实体消息(Message)、在线状态(Presence)和信息查询(IQ)。会话管理模块同时也负责管理用户的离线消息,当用户离线时将消息保存起来,用户重新上线后,再将消息发送给用户。如下图4-4所示,为消息分发和处理机制:图4-4消息分发和处理流程1)会话管理:服务器会话管理模块接收到客户端发来的XML流,将接收到到的XML消息转交给XML解析器; 东华大学硕士研究生学位论文4基于)qⅥPP和刚5的网络视频会议系统2)XML解析器:XML解析器接收到XML流信息,解析成功后将消息发送给消息分发模块;3)消息分发:消息分发模块收到消息后,根据消息的类型,分别将消息发送给不同模块进行处理;4)处理:各个模块处理成功后,返回消息给客户端。4.2.2消息处理根据上一节4.2.1中所描述,服务器或者客户端在接收到消息后,首先进行消息分发,再根据不同的消息类型分别转入处理模块进行相应的处理操作。4.2.2.1实体消息Message实体消息Message为用户之间发送的实体消息,本文系统中的实体消息分为点对点消息、群组消息以及电子白板的绘图消息。如下图4.5所示:图4-5实体消息Message处理1)点对点消息为两个用户之间发送的文本消息,服务器收到该消息后直接将消息转发给目的用户;客户端收到该类型的消息,直接在本地客户端聊天窗口中显示消息。2)群组消息为多人视频会议室内的群聊文本消息,服务器收到该类型的消息将消息转发给会议室内的所有用户;客户端收到该消息,直接在本地会议室的聊天窗口中显示。3)绘图消息为视频会议内的电子白板图像信息,某个用户在本地的电子白板上画图,客户端检测到图像信息变化,立刻将新的图像信息发送给服务器,服务器收到电子白板消息后转发给会议室内的所有用户;其他客户端收到该消息后,更新本地的电子白板的图像信息。4.2.2.2在线状态Presence在线状态消息为用户或者会议室的状态消息,包括用户上线和下线消息、会议室创建和取消消息以及用户加入和退出会议消息等。参见图4-6:24 东华大学硕士研究生学位论文4基于)洲阼和刚5的网络视频会议系统图4石在线状态消息处理1)用户上线消息在用户登录成功后触发,服务器向其他在线用户转发某用户上线消息;其他用户收到后更新本地联系人列表的在线状态。2)用户下线消息在用户退出客户端程序时向服务器发送,服务器收到用户下线消息,将该信息转发给其他在线用户;其他用户收到后更新本地联系人列表的在线状态。3)会议室创建消息是在用户成功创建视频会议室后,服务器向其他在线用户发送会议创建消息;其他用户收到消息后更新本地视频会议室列表。41会议室关闭消息是会议创建者关闭视频会议后,向服务器发送会议关闭消息,服务器收到后向其他在线用户发送;其他用户收到消息后更新本地视频会议室列表并退出视频会议。5)用户加入会议消息为用户成功加入视频会议室消息,服务器向其他视频会议的参与者发送;会议参与者收到后更新用户列表并进行相应音视频处理。61用户退出会议消息是当某个用户退出视频会议室时,向服务器发送退出会议消息,服务器收到后将消息发送给其他会议参与者;其他会议参与者收到消息后更新视频会议室用户列表并进行相应音视频处理。4.2.2.3信息查询IQ信息查询主要为用户之间的各种请求信息的处理,包括查询联系人详细信息、音视频聊天、文件传输、用户登录认证、获取联系人列表、用户加入视频会议以及创建视频会议室等。如图4.7为信息查询消息处理: 东华大学硕士研究生学位论文4基于)MPP和阳d5的网络视频会议系统图4-7信息查询消息处理1)当用户创建视频会议室时,向服务器发送创建视频会议室的请求消息,服务器收到消息后进行处理是否可以创建,然后返回结果给用户。2)用户请求加入视频会议室时,向服务器发送加入请求,服务器认证后将结果返回给用户;3)联系人信息查询消息为用户向服务器请求查询某个联系人的详细信息的消息,服务器处理完成后返回信息给用户。4)用户向其他某个用户发起文件传输时,向服务器发送文件传输请求,服务器收到后转发给目的用户;用户收到请求后进行相应处理并返回结果。5)用户向其他用户发起音视频聊天时,向服务器发送请求消息服务器收到后转发给目的用户;用户收到请求后进行相应处理并返回结果给服务器。6)用户登录认证请求,当用户启动客户端程序向服务器发送认证请求,服务器收到请求,认证后将结果返回个用户。7)获取联系人列表请求,当服务器认证登录请求通过后,客户端向服务器发送获取联系人列表请求,服务器收到后将列表返回给用户客户端。4.2.3用户登录和认证流程客户端登录到服务器会发起一个XML流,认证流程同时也一起开始了。XMPP服务器会根据客户端发送来的加密后的信息进行认证,认证通过后才能继续通信,否则返回认证失败给客户端。如下图4.8为客户端登录服务器以及认证的过程: 东华大学硕士研究生学位论文4基于;俐IPP和制5的网络视频会议系统曰回r———丽F——1:消息27:卜I⋯⋯一葡西⋯⋯一{:r———■甄_—_厂———■甄■———7.k-一一一一一一一瓣一一一一一一一一{E二曼二jll::-图4-8客户端登录服务器认证流程1)客户端向服务器请求登录,同时打开向服务器端的Ⅺ儿流,向服务器端发送请求登录的消息;2)服务器收到客户端的登录请求消息,同时打开向客户端的Ⅺ儿流,为客户端分配一个ID,并返回给客户端;3)客户端向服务器发送认证消息,包括需要认证的用户名信息;4)服务器端收到客户端的认证请求后,向客户端返回密码加密的方法;5)客户端向服务器端发送加密后的密码信息,进行密码认证;6)服务器收到加密后的密码信息后,进行验证,验证后向客户端返回成功或失败消息。4.2.4文件传输流程4.2.4.1文件传输请求流程在网络视频会议系统中,不管是点对点或者多人的视频会议,有时候需要不同用户之间共享文件,这就需要不同用户之间可以进行文件的传输,如图4-9所示,为客户端A向客户端B请求文件传输的消息控制流程: 东华大学硕士研究生学位论文4基于)彻PP和刚5的网络视频会议系统图4-9文件传输请求流程1)客户端A向XMPP服务器发送请求与B进行文件传输的请求通知信息;2)XMPP服务器收到请求信息后,将该消息转发给客户端B;3)客户端B收到请求消息,处理后向XMPP服务器发送接收或拒绝文件传输的通知信息;4)XMPP服务器收到客户端B的通知消息,将接收或拒绝文件传输的消息转发给A;5)客户端A收到接收文件传输的通知后,开始与B文件传输,否则提示用户文件传输被拒绝。4.2.4.2文件传输方法在进行文件传输的时候,由于网络配置或者防火墙的问题,文件传输经常会出现异常,造成文件传输失败。本文采用三种方法进行文件传输,分别为点对点传输、代理服务器传输以及带内文件传输。两个用户之间需要进行文件传输时,如果一种传输方式文件传输失败,则系统自动选择另一种传输方式进行文件传输。如图4.10为文件传输的三种方式。 东华大学硕士研究生学位论文4基于)qill:P和聊5的网络视频会议系统b图4-10文件传输方式1)点对点传输方法如图4.10a,当一个客户端向另外一个客户端传输文件的请求通过后,系统首先选择点对点的传输方式,在同一网络内,点对点的传输方式速度最快。2)代理服务器传输方法如果点对点传输失败,则自动选择代理服务器方法传输文件。如图4.10b,系统将XMPP服务器作为代理服务器,通过代理服务器来进行文件的传输。这种传输方法在传输速度上不如点对点传输,但也是非常有效的文件传输方法。3)带内文件传输方法如果上述两种方法都传输失败,则采用带内传输方法进行文件传输。如图4.10c,客户端将文件分割为多个数据块并按照Base64编码,通过XML流将数据发送给XMPP服务器,XMPP服务器接收到数据后再转发给文件接收的客户端。这种方法不管在什么样的网络环境下,只要客户端与服务器之间网络正常,都能正常的完成文件传输,但传输速度要慢于点对点和代理服务器的传输方法。 东华大学硕士研究生学位论文4基于)刚IPP和刚5的网络视频会议系统4.2.5联系人列表管理在XMPP协议中,名册(Roster)为用户的联系人列表,包含任意数量的用户,每个用户都被唯一的JID所标识、。名册中包含用户的信息、所属分组以及在线状态等。这些信息都可以通过客户端调用适当接口,在需要显示联系人列表时显示出来。名册信息由XMPP服务器进行维护和管理,用户可以随时随地通过向XMPP服务期发送请求消息,以获取最新的联系人列表。例如当客户端登录到服务器并认证成功时,客户端就会向XMPP服务器发送获取Roster的请求消息,XMPP服务器收到请求后,将Roster返回给该客户端,客户端收到后更新本地的联系人列表并显示在界面上。4.2.6在线状态通知订阅在XMPP体系架构中,一个XMPP实体可以订阅其他XMPP实体的在线信息状态通知,订阅通知本质上就是指被订阅者同意发送在线状态信息给订阅者。订阅信息同时存储在订阅者和被订阅者的名册中。当用户通过认证并在服务器上创建一个XML流的会话,用户的在线信息被存放到服务器会话管理模块中。当用户改变在线状态时,客户端会发送状态变更OO信息给服务器,服务器收到通知后在名册中进行查询,将在线信息状态变更发送给所有订阅该用户在线状态的Jabber实体。订阅包括以下四种类别,这些类别保存在服务器端的名册上:1)t0:发送在线状态信息给该用户的实体2)from:该用户需要获得在线状态信息的实体3)both:既发送在线状态信息,又获取在线状态信息的实体4)none:既不发送在线状态信息,又不获取在线状态信息的实体发送在线状态消息的实体不一定是一个XMPP用户,也可以是一个XMPP体系外部的某个服务,例如一个数据流或一个非XMPP的IM系统。非XMPP体系的用户订阅XMPP用户的在线状态通知,需要通过协议网关来解决,协议网关将非XMPP协议的消息翻译为XMPP的消息,以便将在线状态信息发送给非XMPP系统的用户。XMPP服务器上包含一个所有用户的订阅信息组成的名册,也就是上节中所描述的联系人列表。XMPP服务器根据用户的需求对名册上的订阅关系进行允许、拒绝、修改等操作。4.3客户端与服务器之间的音视频传输视频会议系统的关键功能是通过网络将不同地点与会者的图像和声音传送到一块,以达到面对面交流的效果。这就要求视频会议系统中必须采用合适的音 东华大学硕士研究生学位论文4基于)M户P和刚5的网络视频会议系统视频传输以及编解码技术,并且由于网络状况的不可预测性,如何在有限的网络带宽下进行音视频传输是本文的网络视频会议系统中必须要解决的问题。本文研究的基于XMPP和Red5的网络视频会议系统中,客户端与服务器之间的音视频传输方法是系统实现以及有效运行的关键问题。本文的视频会议系统是基于Red5流媒体服务器,客户端与服务器之间的音视频传输,实际上是Flash与Red5流媒体服务器之间的通信,Flash通过ActionScript中的NetConnection类与Red5服务器建立连接和通信。正如上述所介绍,Flash模块部署在系统的客户端,Red5服务器部署在服务器端。系统的客户端包括2个flash模块,分别发布本地音视频流的localVideo.swf和播放远程音视频流的remoteVideo.swf.通过在客户端程序中导入flash模块,调用flash事件对flash中的音视频流进行发布、播放和控制等。4.3.1音视频发布1)先在flash脚本中建立与Red5的连接对象NetConnection;2)调用NetConnection对象的connect方法与Red5服务器建立连接;3)建立传输流的通道NetStream串流对象;4)通过调用NetStream对象的attachVideo和attachAudio方法,将视频和音频流追加给串流对象;5)最后调用NetStream对象的publish方法将本地的视频和音频以“用户名+Video/Audio”的名称分别发布到服务器上。4.3.2音视频播放11先在flash脚本中建立与Red5的连接对象NetConnection;21调用NetConnection对象的connect方法与Red5服务器建立连接;3)建立传输流的通道NetStream串流对象;4)最后调用NetStream对象的play方法播放某个用户的视频和音频。4.3.3音视频传输质量级别定义客户端将本地的音视频信号实时发布到Red5服务器上时,需要占用一定的带宽资源。客户端调用Red5服务器的方法发布本地音视频流时,需要设置发布音视频流的各种参数,以控制对带宽的消耗,使处在网络状况比较差的环境下的客户端也能流畅的参加视频会议。在发布音视频流时,需要在客户端设置发布视频的像素、播放速率、视频压缩率以及音频捕获频率。在Red5视频服务器中,每发布一个音视频流消耗的带宽,可由公式(1)计算得到。B=W.H.V-c(1)31 东华大学硕士研究生学位论文4基于)刚PP和聊5的网络视频会议系统式(1)中B为消耗的带宽(bps),W和日分别为发布视频的宽度、高度,V为播放速率(fps),C为压缩率。根据公式(1),系统将音视频传输质量分为高清、好、中、低四个级别,可以方便控制音视频传输的质量即方便控制带宽消耗:1)高清:视频像素为320*240,播放速率为30fps,压缩率为100%,音频捕获频率为44kHz,每路所需带宽约为2.3Mbps;2)好:视频像素为240"180,播放速率为25fps,压缩率为90%,音频捕获频率为22kHz,每路所需带宽约为1Mbps;3)中:视频像素为160"120,播放速率为20fps,压缩率为80%,音频捕获频率为llkHz,每路所需带宽约为310kbps;一4)低:视频像素为120"90,播放速率为15fps,压缩率为70%,音频捕获频率为8kHz,每路所需带宽约为11lkbps。4.4本章小结在本章节中,首先讨论了本文的网络视频会议系统的框架分为服务器端和客户端,分别介绍了服务器端和客户端的设计框架以及实现的功能。接着描述了基于XMPP的视频会议系统中的各种业务的处理流程,客户端与服务器之间的XMPP消息的处理机制、用户登录和认证流程、文件传输流程、XMPP服务器联系人列表管理以及在线状态通知订阅的实现。最后介绍了客户端与Red5服务器之间音视频流的传输方法以及音视频传输质量的级别,通过定义高清、好、中、低四个音/视频传输质量级别,方便对带宽消耗进行管理和控制。 东华大学硕士研究生学位论文5视频会议实现5视频会议实现本文研究的视频会议系统的音视频传输是基于Red5流媒体服务器,Red5服务器只负责音视频的传输和转发,而视频会议的控制以及视频会议中的各种消息控制是由XMPP服务器来负责,本系统可以实现点对点视频会议和多人视频会议。5.1点对点视频会议实现点对点视频会议即两个用户之间的直接交流,包括文字、文件、音频以及视频交流等。本文系统中的点对点视频会议窗口可以进行文字讨论、文件传输以及音视频聊天。5.1.1点对点文字消息传输当用户A在与用户B的点对点视频会议的会话窗口中输入文本消息时:1)客户端A自动构造一条Message消息,并将该发送给XMPP服务器,包括目的用户的JID、消息内容等信息;21XMPP服务器收到该条消息后,在Message节点中添加from属性,即源用户的JID信息,并将该消息转发给客户端B;3)客户端B收到该消息后,在点对点视频会议会话窗口中显示A输入的消息内容。5.1.2点对点视频会议控制流程5.1.2.1点对点视频会议请求流程图孓l点对点视频会议请求流程如图5.1所示,为客户端A请求与B进行视频会议的消息控制流程:1)客户端A向XMPP服务器发送与B进行视频会议的请求消息;2)客户端A的Flash模块连接Red5服务器,将本地音/视频l流发布到Red5 东华大学硕士研究生学位论文5视频会议实现服务器;3)XMPP服务器通知客户端B,A请求与其进行视频会议;4)客户端B接受请求,并将同意请求的通知消息返回XMPP服务器,否则返回拒绝消息;5)客户端B的Flash模块连接Red5服务器,将本地音视频发布到服务器,同时获取A的音视频流;6)XMPP服务器通知客户端A请求通过、B已经成功连接到Red5服务器;7)客户端A开始获取B的音视频流,点对点视频会议建立完毕。5.1.2.2点对点视频会议关闭流程图5-2点对点视频会议关闭流程如图5.2所示,为客户端A关闭与B的视频会议消息控制流程:1)客户端A向XMPP服务器发送结束与客户端B的视频会议通知消息;2)客户端A的Flash模块关闭与Red5服务器之间的视频通信连接;3)XMPP服务器通知客户端B,A已经关闭视频会议;4)客户端B收到XMPP服务器的通知后,关闭与Red5服务器之间的视频通信连接。5.2多人视频会议实现多人视频会议是指多人同时参加会议,同时进行音视频交流的视频会议形式。本文系统的多人视频会议可以实现多人文字消息、交互式电子白板以及多人音视频交流。5.2.1多人文字消息传输多人文字消息作为多人视频会议中的一项功能,实际上就相当于许多其他IM软件中的群功能,在视频会议进行时,用户可以用文字发表自己的观点或意见,使其他用户能更加直观的理解发言人的思想。当用户A在多人视频会议室meeting中输入文字消息发送时: 东华大学硕士研究生学位论文5视频会议实现11客户端A构造一条Message消息,并向XMPP服务器发送该条消息,包括目的会议室的JID、消息内容等信息;2)XMPP服务器收到该条消息后,在Message节点中添加from属性,即源用户的JID,再将消息转发给视频会议室中的所有用户;31视频会议室内的其他用户收到XMPP服务器转发的Message消息后,在本地视频会议室会话窗口中显示客户端A输入的消息内容。5.2.2交互式点子白板电子白板技术是网络视频会议系统中的又一重要特性,它利用了协同技术实现了用户的实时交互和协同合作,实现了现场会议或者课堂上的黑板功能。通过计算机中的虚拟画笔,每个用户都可以在白板上任意进行书写、绘画,并在每个网络视频会议的参与者的终端实时显示,使每个网络视频会议的参与者都能实时的交互信息。本文通过XMPP协议中的群组消息机制,实现电子白板绘图多客户端实时更新,当某个客户端更新电子白板时,客户端将更新的点、图形以及颜色等信息通过XML流发送给XMPP服务器,XMPP服务器收到绘图消息后,转发给视频会议室内的其他用户,其他用户收到消息后更新本地的电子白板显示图形。在本视频会议系统中的电子白板可以实现各种颜色的点、直线、椭圆、园、矩形以及铅笔等简单的图形绘制。如图5.3为电子白板的示意图:日董疆翻图孓3交互式电子白板根据图中描述,用户可以在整个电子白板区域内,任意进行书写或绘图。例如在视频会议室meeting内,当某个用户A绘制一条新的黑色直线时:1)客户端构造‘条Message消息,其中包括图形的颜色、画笔宽度、线性、坐标等,并将该消息发送给XMPP服务器;、,:nI、.凸∥A■器器~ 东华大学硕士研究生学位论文5视频会议实现2)XMPP服务器收到该条消息后,将该消息转发给视频会议室meeting内的其他参与者;3)视频会议室meeting内的其他用户收到该条消息后,根据消息中的各种图形属性,在本地电子白板的相同位置绘制用户A绘制的图形。5.2.3多人视频会议控制流程XMPP协议支持组聊的消息类型,在XMPP协议基础上创建多人视频会议室非常方便和高效。多人视频会议室中,Red5视频服务器作为客户端之间视频传输的中转站,每个参加会议的客户端都通过Flash将本地的音视频发布到Red5服务器上,从Red5服务器上获取其他参与会议的客户端发布的音视频流,在本地Flash客户端上进行混合处理后播放。在多人视频会议中,最重要的问题就是如何通过XMPP消息去控制视频会议室中的各种请求以及多人视频中的音视频控制。5.2.3.1新建多人视频会议流程图孓4新建多人视频会议室当需要进行多人视频会议时,首先需要某个用户建立视频会议室,图5.4所示为用户A创建名称为meeting的视频会议室的消息控制流程:1)客户端A创建一个新的视频会议室时,会向XMPP服务器发送请求消息,消息中包括会议室名称、密码、容纳的最大人数、会议室优先级等信息;2)XMPP服务器收到该请求后,检查当前的剩余带宽能否满足新建视频会议室的最低带宽需求,如果带宽能满足新建视频会议室的需求,则允许新建,返回创建成功消息给客户端A,否则返回会议室创建失败消息;3)XMPP服务器向所有在线的客户端发送视频会议室创建成功消息;4)客户端A收到视频会议创建成功消息后,通过RTMP传输协议连接到Red5服务器,将本地音视频发布到服务器:其他在线的客户端收到消息则更新本地会议室列表;5)用户A创建视频会议室结束。 东华大学硕士研究生学位论文5视频会议实现5.2.3.2加入多人视频会议流程图5-5加入多人视频会议室当某个用户B加入视频会议室meeting时,流程如图5.5所示:1)客户端B向XMPP服务器发送请求加入视频会议室的消息;2)XMPP服务器进行认证,认证通过后通知客户端B加入会议室成功,并将视频会议室中的参与者信息发给B;否则返回加入失败消息给客户端B;3)XMPP服务器将B加入会议的消息发给会议室中的其他参与者;4)客户端B在收到加入成功和会议室中的参与者消息后,更新会议室用户列表,并且连接到Red5服务器,通过Red5服务器发布本地音视频和获取其他客户端的音视频;5)其他视频会议室内的参与者收到B加入会议室的消息,更新会议室用户列表并连接Red5服务器建立与B之间的音视频通信连接;6)用户B加入视频会议室结束。5.2.3.3退出多人视频会议流程图5-6退出多人视频会议室当某个用户B退出视频会议室meeting时,流程如图5-6所示:1)客户端B向XMPP服务器发送请求退出会议室消息;2)客户端B的Flash模块关闭与Red5之间的视频通信连接:31XMPP服务器收到客户端B退出会议的消息后,将该消息转发给会议室 东华大学硕士研究生学位论文5视频会议实现中的其他参与者;4)视频会议室内的其他参与者收到通知消息后,Flash模块停止与客户端B的音视频通信连接。5)客户端B退出会议室完毕。5.2.3.4关闭多人视频会议流程图5-7关闭多人视频会议室当会议室创建者A关闭会议室meeting时,其他用户也就一起退出会议,如图5.7所示为会议室关闭流程:1)会议室创建者A向XMPP服务器发送关闭会议室的请求消息;2)客户端A的Flash模块关闭与Red5之间的音视频通信连接;3)XMPP服务器收到消息后,通知所有在线的客户端视频会议室meeting已经关闭:4)该会议室中的参与者收到会议室关闭的消息后,Flash模块关闭本地与Red5服务器之间的音视频通信连接,更新本地视频会议室列表,退出会议室;5)其他非该会议参与者的在线用户收到会议室关闭消息,在会议室列表中删除该会议室,视频会议室关闭完毕。5.3客户端与服务器之间的心跳机制在网络视频会议系统中,当某个客户端正常退出程序或者退出会议室时,服务器可以正常收到退出消息,并通知其他客户端以及释放该客户端占用服务器或者视频会议室的相应资源。但是,当某个客户端发生意外,例如网络断连、程序崩溃等问题时,客户端将无法发送退出消息给服务器,这就造成服务器以及其他客户端无法获取到该客户端的状态,当客户端长时间无法恢复原来的状态时,就会造成系统错误或不必要的资源浪费。因此,服务器端需要知道每个客户端与服务器的连接状态,需要知道每个客户端是否在正常运行,如果发生意外断连,服 东华大学硕士研究生学位论文5视频会议实现务器端可以及时的处理,这就需要客户端与服务器之间有心跳握手机制,保证客户端和服务器端之间连接的有效。本文中研究的网络视频会议系统,利用XMPP协议中的的在线状态presence消息来实现客户端与服务器之间的心跳机制。客户端在正常运行时,每隔3分钟定时向服务器发送心跳消息,以证明其依然在活动状态,服务器收到消息后,判断该消息的ID为ShkHand心跳,即更新服务器本地的Roster,以保存其在线活动的状态。服务器在规定时间内没有收到某个客户端发来的心跳消息,证明其已经发生意外关闭或者断连。在3个心跳周期(即9分钟)内,服务器会为客户端保存视频会议室中的视频通信等资源,如果客户端恢复正常运行状态时,客户端发送心跳信息给服务器,服务器收到后为客户端恢复连接;如果在9分钟内,客户端依然未恢复正常,服务器将认为该客户端无法恢复,清理该客户端在XMPP服务器和Red5视频服务器上的所有资源,以及通知其他客户端该用户已经下线,其他客户端收到消息后进行相应处理。这样就可以在用户发生意外无法恢复造成不必要的资源以及带宽的消耗时,也可以在用户恢复运行时,即时恢复该用户的信息以及视频会议状态等,提高系统运行的稳定性。在XMPP的体系中,构建和处理一个XML节点的presence消息相当简单和高效,因此采用发送presence的消息作为客户端与服务器之间的心跳消息,既节省带宽资源,也不用耗费客户端和服务器太多的资源去处理。5.4本章小结本章节中首先介绍了点对点视频会议的实现方法,给出了点对点文字消息传输的实现方法,以及点对点视频会议的请求和关闭流程。接着介绍了多人视频会议的实现,革除了多人文字消息传输、交互式电子白板的实现方法,以及新建、加入、退出和关闭多人视频会议室的流程。最后为了保证视频会议进行时,客户端和服务器端之间的实时通信连接,给出了客户端与服务器之间的心跳机制,进一步完善了网络视频会议系统的运行机匍l。 东华大学硕士研究生学位论文6视频会议的带宽管理6视频会议的带宽管理在网络视频会议系统中,无论是点对点视频会议还是多人视频会议,客户端与服务器之间的音视频传输都会受到网络带宽的影响,而且都会消耗服务器一定量的带宽资源,服务器的带宽资源直接影响视频会议的质量。因此服务器带宽资源的管理和分配方法,如何有效的降低视频会议中消耗的带宽,使在不同的网络状态下都能正常的进行视频会议,这些关于视频会议中音视频传输的带宽问题在网络视频会议系统的研究中都显得尤为重要。6.1采用Flash作为传输媒介的缺陷传输的音视频流是基于Flash的流媒体技术。但在目前Flash的最新版本中,通过Flash的AS脚本方法无法处理网络上的Flash流,只能对音视频流进行发布和远程播放操作,无法提取出Flash流里的音视频元数据进行分析和处理。因。此通过Flash技术在服务器端无法对每个用户发送来的音视频进行合成或者重新编解码,以至于在多人视频会议中,要实现多人同时发言交流,每个用户都会连接Red5服务器播放视频会议室内的其他用户的音视频流,造成下行路数过多,占用带宽较大的问题,系统支持的最大会议终端数相应就会产生限制。在国内外许多学者研究的基于Flash流媒体的视频会议系统中,由于Flash技术上的制约,都是采用固定的下行路数,例如只有视频会议的主持人以及一个正在发言的用户拥有发言权,其他用户想要发言必须先申请并由主持人进行批准和分配发言权限,在同一时刻不能所有的用户同时发言。这种方案虽然节省了带宽,但用户无法同时进行交流,给视频会议的进行和使用都带来很大的不便。本文研究的视频会议系统中,采用每个参加视频会议的用户在本地客户端播放其他所有用户的音视频流的方法,达到所有用户都能在同一时刻进行发言,提高视频会议系统的可用性和沟通的高效性。为了解决采用此方法带来的带宽消耗过大的问题,本文提出了服务器自动管理和分配带宽、客户端传输质量的自动调整以及音视频分层技术【44】【451,对多人视频会议消耗的带宽进行管理和控制,通过这三种方法有效的对视频会议消耗的带宽资源进行控制,合理的利用了Red5流媒体服务器的带宽,降低了每个视频会议在运行时消耗的带宽资源。6.2带宽管理控制的改进方法6.2.1视频会议室带宽的管理和分配每个视频会议室在进行会议时,都需要消耗音视频服务器一定的带宽资源。为了更好的利用服务器的带宽,需要在服务器端对所有的视频会议室进行带宽的40 东华大学硕士研究生学位论文6视频会议的带宽管理分配和管理,有效地使用视频服务器的带宽资源。既能保证Red5服务器在低负载时,保证视频会议的音视频传输质量,又能保障在高负载环境下视频会议的正常进行。当有视频会议室创建或关闭时,会向服务器申请一定量的带宽资源或释放正在占用服务器的带宽资源,服务器所剩的带宽资源会发生改变,为了优化正在进行的视频会议室占用的带宽资源,因此需要服务器重新分配所有会议室的带宽。在新建视频会议室时,如果服务器带宽资源已经用尽,或者余下的带宽无法满足新建视频会议室的最低带宽需求,在现有视频会议室结束并释放带宽之前,将无法再创建新的视频会议室。在视频会议系统中,可能会有比较重要的视频会议,为了优先保证重要的视频会议,因此按照视频会议的重要程度,系统定义高(r-I)、中(】Ⅵ)、低G)三个优先级的视频会议室,重要的视频会议级别为高。服务器端自动根据每个视频会议优先级的高低来分配带宽,优先级高的视频会议室优先分配更多的带宽以保证会议的正常进行以及音视频的传输质量。服务器带宽分配算法流程如图6.1所示,每当服务器接收到会议室创建或关闭请求时自动触发:是图6.1服务器带宽分配算法1)在服务器端,首先对所有视频会议室按照优先级由高到低进行排序。优先级相等时按照参加会议的人数排序,人数少的排在前面;2)第一次遍历视频会议室序列时,将每个视频会议室中的客户端与服务器之间传输的音视频质量都设置为“高清”;非第一次时,对末端序列的视频会议室(即优先级最低的会议室)的传输质量下降一个级别o。3)根据参加会议的最大人数计算出每个会议室需要的带宽,累加得出总的带宽需求:4)判断带宽需求是否超出服务器总带宽容量。若带宽需求小于服务器的总41 东华大学硕士研究生学位论文6视频会议的带宽管理带宽,则可以满足所有视频会议的带宽需求,带宽分配完成;若带宽需求已经超出服务器的总带宽,则回到第2步,重新设置视频会议室中的客户端与服务器之间传输的音视频质量,直到带宽需求小于服务器的总带宽为止。6.2.2客户端音视频传输的动态调整视频会议进行时,客户端需要不断地从本地麦克风和摄像头,获取音视频信息,并将音视频流发布到Red5服务器上。但客户端可能会由于某些原因无法保证网络状况一直处于较好的水平。例如在网络状况不好的情况下继续向服务器传输高质量级别的音视频流,就会造成音视频传输不流畅,进而影响视频会议的质量。为了使视频会议既能在网络状况好的时候享受高质量的音视频传输,也能在网络状况差的情况下能流畅传递信息,需要客户端与服务器之间传输音视频的质量级别根据具有自动调节的功能。客户端传输音视频的质量级别由客户端的定时器定时触发,并根据网速进行动态调整。但由于客户端与服务器之间网速的不确定性,某一时刻的网速无法真实反应实际的网速,不能根据某一时刻客户端与服务器之间的网速来调整音视频传输质量。因此,需要计算一段时间内的网速平均值,网速的平均值可以真实反应一段时间内客户端的网络状况,根据网速平均值可以正确的对音视频流传输质量进行动态调整。文中提出的根据网速动态调整音视频传输质量方法,首先参与视频会议的客户端在加入视频会议时会创建1个lO分钟和1个1分钟的定时器,10分钟定时器为调整音视频传输质量的定时器,1分钟定时器为计算网速的定时器。客户端每隔1分钟触发1分钟定时器,自动检测本地与视频服务器之间的网络状况,计算网络连接速度,并将网速保存到内存中。客户端每隔lO分钟触发10分钟定时器,根据每分钟计算得到的网速,取10分钟内的网速平均值,在不高于服务器给该视频会议室分配的音视频传输质量级别的情况下,自动将音视频传输质量调整到合适的水平。例如,服务器给视频会议室A分配的音视频质量级别为“好”,该会议室中的某个客户端在自动调整音视频质量级别时,只能调整为“好”或者以下的级别,不能调整到“高清”级别。在整个视频会议期间,客户端每隔1分钟需要检测和计算网速,以便定时调整音视频传输质量,本方法采用在客户端程序中直接调用Windows系统的ping命令的方法来检测网速。首先调用ping命令,客户端向服务器发送刀(Byte)的数据包,然后记录服务器返回同样大小的数据包的时间t(ms)。由公式(2)计算得到每秒钟从客户端到服务器传送数据的比特数s。 东华大学硕士研究生学位论文6视频会议的带宽管理S=nx8(2)f上式中发送数据包的大小需要合适,经过在100M局域网内反复实验测试,如果发送包小于500字节,会造成计算出的网速精度不够,而发送包大于5000字节时丢包率就会增大。因此系统发送的数据包根据网络状况自动调节在500字节和5000字节之间。6.2.3音视频分层技术本系统的多人视频会议实现方法保证了在同一时刻任何与会者都能同时发言,提高了视频会议的即时性和沟通效率,但这种方法需要消耗大量的带宽。而实际上,音视频流在传输过程中,视频数据需要消耗大部分的网络资源,对于音频数据来说,消耗的资源相对较小。‘在视频会议进行中,大部分时间并不是所有用户都会一直发言,当某个用户不发言时,其他用户也不会特别关注该用户,这时该用户如果依然向Red5服务器传输高质量的视频数据,就会造成带宽的额外浪费。因此针对上述特点,本文提出音视频分层技术,将音频流和视频流分离、根据每个与会者的声音活跃程度动态调整视频传输的质量级别,最大限度的减少和利用带宽。多人视频会议中的参与者或用户,可划分为活跃者和非活跃者。活跃者为在当前一段时间内发言的用户,非活跃者为没有发言的用户。在视频会议进行期间,每个参与视频会议的客户端都会根据自己是否为活跃者,进行相应的视频传输质量级别调整。当某个用户为活跃者时,客户端自动将该客户端的视频传输质量级别调整到合适的水平(不能超过服务器分配的最高传输质量级别);当用户变为非活跃者时,客户端自动将其视频传输质量级别调整到最低水平,以降低带宽消耗。根据用户的活跃状态来调整视频传输质量级别有2种方法,分别为静态调整和动态调整:1)静态调整方法静态调整方法为在视频会议室建立成功初期,每个用户在加入视频会议室时,都可以选择将自己初始化为活跃者或非活跃者,用户可以根据自己是否需要立即发言进行初始设置,需要立即发言的用户可以将自己初始化为活跃者,不需要发言的用户则将自己初始设置为非活跃者。作为活跃者的客户端将自动将视频传输质量调整到合适的水平,非活跃者的客户端将会自动调整到最低级别以减少带宽消耗。2)动态调整方法动态调整方法为在视频会议进行时,每个用户根据麦克风捕获声音的活跃程度,动态的在活跃者和非活跃者之间进行转换,自动对视频传输的质量级别进行调整。 东华大学硕士研究生学位论文6视频会议的带宽管理要获取麦克风捕获声音的活跃程度,客户端必须对麦克风进行实时监控,以判断当前麦克风是否有声音输入。本文采用DirectShow技术M【47】来实现对麦克风的监控,并实时获取输入麦克风的声音强度。DirectShow是微软公司在ActiveMovie和VideoforWindows的基础上推出的新一代基于COM(ComponentObjectModel)的流媒体处理的开发包,并与DirectX开发包一起发布。DirectShow为多媒体流的捕捉和回放提供了强有力的支持,运用DirectShow技术,开发者可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。DirectShow对硬件的支持是通过特定的包装Filter来实现的,计算机中的每个硬件在DirectShow中都有相应的Filter来处理,客户端系统中需要监控的声卡为AudioCaptureFilter,内部是使用了以waveIn开头的一套API来实现。在AudioCaptureFilter中,有很多输入Pin,比如LineIn、CDAudio、Microphone、StereoMix等。通过AudioCaptureFilter中的Microphone来实时监控麦克风的输入,每当某个用户加入视频会议室时,客户端系统会创建一个线程,专门用来实时监控麦克风的声音输入。如图6.2所示,为麦克风实时监控流程,首先将麦克风输入的声音数据读入一个缓冲区,每隔3秒钟定时对缓冲区中的声音数据进行分析,系统中获得声音的强度系数为0到100的数。图6.2麦克风实时监控流程1)读入缓冲区:实时将麦克风输入的声音数据读入一个缓冲区,每次缓冲3秒的声音数据;2)是否活跃者:线程每隔3秒钟定时提取出缓冲区的声音数据进行分析,如果声音信号的平均强度大于20时,证明该用户正在发言,为活跃者;如果声音信号的平均强度小于20,即表示该用户没在发言,为非活跃者; 东华大学硕士研究生学位论文6视频会议的带宽管理3)调整视频t如果用户为活跃者,客户端系统将自动把本地向Red5服务器发送的视频质量调整到合适的水平;如果用户为非活跃者,客户端系统将自动把本地向Red5服务器发送的视频质量降到最低级别,以减少带宽消耗;4)清空缓冲区:视频质量调整完成后,清空缓冲区中的数据,继续接收下一个3秒钟的声音数据,等待下一次运行。6.3改进后的性能分析本文提出的网络视频会议解决方案,传输的音视频流是基于Flash,Flash本身就具有占用带宽小和压缩率高的特点。为了实现同一时刻所有用户都能发言的功能;每个客户端针对其他用户都需要与Red5服务器建立一个独立的连接,以获取其他所有用户的音视频流,这就大大增加了音视频流下行路数,消耗了大量的带宽。为了解决带宽消耗和带宽利用率问题,提出了6.2节中的三种带宽管理控制方法,对基于XMPP和Red5的网络视频会议系统进行改进,取得了显著的效果。6.3.1视频会议室的带宽消耗对改进前后视频会议系统的带宽消耗进行对比测试,同样的3人高清视频会议室改进前和改进后消耗的各项带宽参数如下表6.1所示:表6-1改进前后带宽消耗对比—、、\改进前改进后平均总带宽15.3M7.5M峰值总带宽20.7M13.2M客户端平均带宽4.6M2.7M客户端峰值带宽6.9M5.6M根据表6.1所描述的数据,改进后的视频会议系统大大节省了带宽,对于3人高清视频会议室来说,几乎降低了2倍的带宽消耗。采用客户端根据网速动态调整音视频传输质量和音视频分层技术两种方法,弥补了音视频下行路数过多导致占用带宽过大的问题,使客户端系统能根据网速和用户的发言进行动态调整,保证了在任何网络状况下都能正常的进行视频会议。6.3.2服务器的带宽利用率在未采用优先级的管理分配算法前,当有新的视频会议室创建时,服务器给 东华大学硕士研究生学位论文6视频会议的带宽管理其分配固定的带宽,但是有时由于该视频会议室内与会者的网络状况比较差,造成客户端都传输低质量的音视频流,造成该视频会议室剩余比较多的带宽,并且也无法释放掉,造成资源浪费。服务器采用按照优先级管理和分配带宽的算法,使视频会议室分配的带宽可以根据优先级进行调整,提高了Red5服务器带宽资源的利用率。经过测试Red5服务器在满负载的情况下,采用按照优先级对视频会议室带宽的分配算法后,Red5服务器的带宽实际利用率从61%提高到83%,提高了服务器的容量,使在有限的带宽下可以召开更多的视频会议。6.4本章小结本章首先分析了系统采用Flash作为传输媒介的缺陷,以及为了实现同二时刻同时发言的功能,造成了带宽消耗过大的问题。接着针对带宽管理控制的问题,提出了服务器端管理和分配视频会议室带宽的算法、客户端根据网速动态调整音视频传输质量以及音视频分层技术,这三种方法有效地提高了带宽的利用率,并降低了视频会议进行时的带宽消耗,实现了对带宽的管理和控制。最后,通过对改进前后1个3人高清视频会议室带宽消耗的数据对比,进一步分析了本文提出的3种带宽控制方法,有效的降低了带宽消耗,提高了服务器带宽的利用率。 东华大学硕士研究生学位笙奎:堕堕:!!塑7.1课题研究工作总结7总结与展望7.1.1研究内容总结课题的目的是研究一种新型的网络视频会议系统,通过对XMPP协议和Red5流媒体技术的研究,实现了基于XMPP和Red5的网络视频会议系统,并给出了视频会议系统中的各种关键业务的实现,提出了多人视频会议中带宽管理和控制的方法,有效的减少带宽消耗和最大限度的利用带宽资源。本文首先介绍了XMPP体系架构,详细分析了XMPP协议的地址结构、消息格式以及xMPP协议的寻址机制和通信流程,由于XMPP协议具有良好的可扩展性以及灵活的体系架构,因此实现基于XMPP协议的网络视频会议系统非常简单和高效。其次,介绍了流媒体技术的基本概念、实现过程、网络发布形式以及流媒体在网络上的传输方式和协议,结合流媒体技术分析了Flash的相关概念和Red5流媒体服务器的各种API接口。接着,结合XMPP协议的可扩展性和Red5流媒体服务器强大的音视频传输和编解码功能,提出了基于XMPP和Red5的网络视频会议系统的设计方案。为了实现视频会议系统的各种控制流程,研究并实现了视频会议系统中的指令控制系统,其中包括会话管理和消息分发、消息处理、用户登录和认证、文件传输、服务器联系人列表管理以及在线状态通知订阅,同时也给出了视频会议系统中音视频的传输方案。最后,基于上述的研究成果,给出了点对点视频会议和多人视频会议的实现方法,同时实现了点对点文字消息传输、多人文字消息传输以及交互式电子白板的功能。提出了客户端与服务器之间的心跳机制,进一步完善了系统运行的稳定性。由于Flash技术上的缺陷,提出了服务器端视频会议室带宽的管理和分配算法、客户端根据网速动态调整音视频传输质量以及音视频分层技术,系统采用这三种方法有效的降低了带宽消耗并最大限度的利用带宽资源。7.1.2创新点总结1)结合XMPP协议良好的可扩展性和Red5流媒体服务器强大的音视频编解码和传输功能,提出了基于XMPP和Red5的网路视频会议系统解决方案,实现了基于XMPP协议的指令控制系统以及各种业务流程。2)利用XMPP协议中的消息传输机制,来控制客户端与Red5服务器之间 东华大学硕士研究生学位论文7总结与展望的音视频传输,并实现了点对点视频会议和多人视频会议。3)利用XMPP协议中的在线状态消息,给出了客户端与服务器之间的心跳机制,保证服务器能及时处理客户端的意外断连,有效保证了客户端与服务器之间的实时通信。4)针对Flash技术中的缺陷,提出了服务器端视频会议室带宽的管理和分配算法、客户端根据网速动态调整音视频传输质量和音视频分层技术三种方法,通过这三种方法有效的降低了带宽消耗,提高了带宽资源的利用率。7.2课题研究展望本文通过对XMPP协议和Red5流媒体服务器的分析和研究,提出了基于XMPP和Red5的网络视频会议系统的解决方案。由于XMPP协议具有良好的可扩展性,再结合Red5本身强大的流媒体处理功能,本文提出的视频会议解决方案具有开发效率高,成本低等优点。但随着将来各种技术的发展,今后可以针对如下几个方面进行改进:1)由于Flash技术上的缺陷,无法提取到音视频流中的元数据,因此无法对音视频数据进行必要的合成和分析。因此可以对Red5服务器进行扩展研究,分析Red5的源码,对Red5功能进行改进,研究是否可以在Red5服务器端对各个客户端发送来的音视频流进行合成,再回传给各个客户端,使每个用户都只有上行和下行各一路信号。2)继续研究带宽的管理和控制方法,寻找更有效的降低带宽消耗的方法,以及是带宽利用最大化。3)提高视频会议系统中数据传输的安全性。第一,由于目前采用RTMP协议是基于TCP的明文协议,传输的音视频数据都是未经加密的,有很高的安全隐患,很容易被非法分子恶意利用。因此,需要研究如何对RTMP协议中的数据进行加密,保证音视频传输的安全性。第二,虽然在XMPP体系中已经采用TLS和SASL机制,保证了XML流交换信息的安全性,但用户之间传输的即时消息依然可能被破解。因此需要研究即时消息的加密解密算法,将加密后的消息构造到Message元素的Body属性中,保证消息传输的安全性。48 东华大学硕士研究生学位论文参考文献参考文献【1】1曾煜军.视频会议系统技术分析.广东科技,2010,19(10):65-66.【2】穆芮.视频会议系统现状分析.中国电力教育,2009:444.445.【3】王禄东.网络视频会议系统研究.信息技术与信息化,2007,l:47-48.【4】S.Andre.ExtensibleMessagingandPresenceProtocol(XMPP):Core,RFC3920,2004(10).【5】刘璐,董小国.Red5Flash服务器研究.网络安全技术与应用,2009,6:78·79.【6】6刘海波,王辉麟,李雪.网络视频会议系统的设计与实现.铁路计算机应用,2009,18(7):51-54.【7】仲元昌,林永,蔡增增,何进.视频会议系统关键技术及应用研究.电视技术,2010,34(6):93-96.【8】陆明,王旭东.基于FLV流媒体技术的视频会议系统设计.吉林大学学报,2010,28(2):186-190.【9】朱建军.基于JMF的音视频会议系统的研究与实现.吉林化工学院学报,2009,26(2):71—74.【10】冯亚军,宋自林.基于XMPP协议的即时通信系统.军事通信技术,2005,26(1):36-40.【ll】黄勇,万琴,黄晓萍.基于XMPP标准的即时消息系统及其应用.江西科学,2005,23(6):776—780.[12】侯可,张宏壮.基于XMPP的企业即时消息技术实现.河北省科学院学报,2008,25(3):24·27.【13】K.Andreassen.TheReliabilityofXMPPforFileTransfer.FacultyofScience-DepartmentofComputerScience,2008.6.【14】K.AndreassenandJ.GBellika.TheReliabilityoftheXMPPProtocolExtensionsasaFileTransferMechanisminDedicatedHealthcareNetworks.TheJournalonInformationTechnologyinHealthcare2009,7(1):68-76.[15】施济瑜,苗放,王华军,李刚.基于XMPP协议文件传输的研究与实现.计算机测量与控制,2009,17(4):732.733.[16】邹李兵,王华军,章三妹.一种基于Red5实现JabberIM视频通信的解决方案.信息通信,2008,21(3):44.47.f17】章三妹.Red5在Jabber服务器视频通信中的应用.电脑学习,2009,4:39-40.【18】李向阳.共享电子白板系统设计与实现.计算机工程与应用,1999.【19】H.J.Imbens.SimpleWhiteboarding.XEP-0113,2003.『201王小花.视频会议系统技术与实现.吉林大学硕士学位论文,2005. 东华大学硕士研究生学位论文参考文献【2l】S.Andre.ExtensibleMessagingandPresenceProtocol(XMPP):InstantMessagingandPresence,RFC3921,2004(10).【22】H.Chu,W.Chen,YHuangandJ.Chen.ANovelDesignofInstantMessagingServiceExtendedfromShortMessageServiceWithXMPEFilthIEEInternationalConferenceon3GMobileCommunicationTechnologies,2004,Page(s):504—508.【23】P.Nie.AnOpenStandardForInstantMessaging:ExtensibleMessagingandPresenceProtocol(XMPP).SeminaronInternetworking,2006,4(5):190-195.【24】D.MooreandW.Wrght.JabberDeveloper’SHandbook,2003(7).【25】S.Andre.MappingtheExtensibleMessagingandPresenceProtocol(XMPP)toCommonPresenceandInstantMessaging,RFC3922,2004(10).[26】S.Andre.StreamXMLUsingXMPP.IEEEInternetComputing,2005(1).【27】杨斌.XMPP协议分析与应用探讨.微型机与应用,2005,8:32.34.[28】L.Leel,K.Choil,D.Jeong,S.Park,J.Kwon.AnInter-DomainAuthenticationMechanismforXMPP/Jabber.FourthIntemationalConferenceonSoftware[29】【30】【3l】[32】【33】【34】【35】EngineeringResearch,ManagementandApplicationsIEEE.2005,8(6):268.275.T.DierksandC.Allen.TheTLSProtocolVersionl.0,RFC2246,1999(1).J.Myers,SimpleAuthenticationandSecurityLayer(SASL),RFC2222,1997(10).J.Rosenberg.SIP:SessionInitiationProtocol,RFC3261,2002(6).张云川.标准化的即时通信协议.SIMPLE和XMPP的对比研究.武汉科技大学学报,2005,28(4):375—377.黄玉发.流媒体和视频服务器原理.北京:机械工业出版社,2003.龚姣.基于FLAS肌EDIASERVER构建网络视频会议系统.长春理工大学硕士学位论文,2007.H.Schulzfinne,S.Casner,R.Frederick.RTP:ATransportProtocolforReal—TimeApplications,RFC1889,1996.【36】F.Sonnati.FlashVideoTechnologyAndOptimizations.InternationalConferenceonComputerVision,2005.【37】S.Sukaridhoto.AComparativeStudyofOpenSourceSoflwaresforVirtualizationwithStreamingServerApplications.IEEEInternationalSymposiumonConsumerElectronics,2009:577-581.[38】孙颖.FlashActionScript3殿堂之路.北京:电子工业出版社,2007【39】黄曦.Flex3.0RIA开发详解:基于ActionScript3.0实现.北京:电子工业出50 东华大学硕士研究生学位论文参考文献版社,2008.【40】侯全军.基于Flash平台的多媒体远程教学系统.湖南大学硕士学位论文,2007.【4l】M.Sun,andT.Wu.DynamicBitAllocationinVideoCombiningforMultipointConferencing.IEEETransactionsonCircuitsandSystems,1998,45(5):644.648.【42】K.FungandYChan.Low-ComplexityAndHigh-QualityFrame—SkippingTranscoderforContinuousPresenceMultipointVideoConferencing.IEEETransactionsonMultimedia,2004,6(I):31-46.【43】蒋东兴.WindowsSockets网络程序设计大全.北京:清华大学出版社,2000.【44】I.Ekin.Peer-to-PeerMultipointVideoConferencingUsingLayeredVideo.ElectricalandComputerEngineering,2007(8).【45】A.ThakurandL.Motyckova.EncodingofVideoinLayersBasedonPerceptualQualityofVideo.DepartmentofComputerScienceandElectricalEngineering,2007.【46】陆其明.DirectShow开发指南.北京:清华大学出版社,2003.[47】廖伟平,黄志,丘昊,詹利群DirectShow视频捕捉在H_323视频会议系统中的应用.微计算机应用,2009,30(2):31—34.51 东华大学硕士研究生学位论文攻读硕士学位期间发表的学术论文攻读硕士学位期间发表的学术论文1.樊军、曾培峰、唐莉萍,基于XMPP和Red5的网络视频会议系统的研究,计算机应用与软件,2010.10(已录用) 东华大学硕士研究生学位论文致谢致谢首先,非常感谢我的导师曾培峰教授在课题研究以及论文完成的过程中给予的关心、指导和帮助。在攻读硕士学位的两年多里,非常感激我的导师曾培峰老师给予我各方面的关心和耐心细致的指导。老师严谨的治学作风、谦虚的治学态度和崇高的品质亦给我留下了深刻的印象。在科学研究和论文写作过程中,老师多方位的学术见解为我拓宽了思路,在项目开发过程中,他们在专业技能上的指导令我受益匪浅。正是因为有了老师严格的要求和细心的指导,我才能够克服研究过程中遇到的各种困难,顺利地完成学业。在此我要向我的老师表达深深的谢意。两年的研究生生活是愉快的,’也是令人难忘的。计算机08硕的同学们以及各位师兄师姐们,在学习和生活上都给予了我莫大的帮助。感谢胡建建、余佶、张岩与我学术研究和项目开发上的交流和合作,他们认真、勤奋的学习工作态度和乐于分享、团结合作的精神深深地感染了我。还感谢所有给予我论文研究过程中提供的协助,同时也感谢其他师弟师妹们给予的一切支持和帮助。感谢我的辅导员陶莉老师、丁怡老师对我们日常学习生活的关心以及帮助,使得我顺利地展开了课题的研究以及毕业。特别感谢我的父母和家人朋友们对我多年的关心和支持。我的每一份成绩都是对他们的最好回报! 基于XMPP的网络视频传输系统的研究 作者: 樊军 学位授予单位: 东华大学 被引用次数: 1次 引证文献(1条) 1.江思源 基于XMPP的网络多人视频会议系统的实现研究[期刊论文]-中国新通信 2015(20) 引用本文格式:樊军 基于XMPP的网络视频传输系统的研究[学位论文]硕士 2011
还剩64页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf