无人值守视频监视系统开发_第1页
无人值守视频监视系统开发_第2页
无人值守视频监视系统开发_第3页
无人值守视频监视系统开发_第4页
无人值守视频监视系统开发_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号2009302580235密级武汉大学本科毕业论文基于B/S结构的视频监控软件系统设计院(系名称:电子信息学院专业名称:电波传播与天线学生姓名:陈辉指导教师:易本顺教授二一三年五BACHELOR'S DEGREE THESISOF WUHAN UNIVERSITYThe design of video surveillance software system based on B/S modeCollege :School of Electronic InformationSubject :Radio wave propagation and antennaName :Chen H

2、uiDirected by :Prof.Yi BenshunMay 2013郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名:日期:摘要一般视频服务器的后台软件分为C/S结构和B/S结构两大类。C/S结构从上世纪90年代出现至今,技术上已经相当成熟。但是基于C/S结构的视频监控平台必须安装客户端软件,造成用户使用不便;随着互联网的快速

3、发展及各类公众信息服务的应用,越来越多的用户希望通过Web浏览器观看公众视频信息,传统的C/S 架构无法满足用户的使用需求。B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,开发出基于B/S结构的视频监控软件系统,能较好的满足当前人们对网络视频的需求。本文针对基于B/S结构的视频监控系统软件设计的主要工作有:(1查找并阅读了关于流媒体相关文献资料,采用了比较适合开发的Red5流媒体服务器,并对该服务器进行了一定的学习了解。(我理解的这个无人基站的搭建在上位机这块主要是对red5进行开发,在red5这块原有的基础上进行开发。(2设计了基于B/S结构视频服务器的总体方案,并对

4、该方案的每一个环节作出了较为详细的说明。(具体就是整个搭建无人值守通讯站视频及环境监测系统的每一个步骤,并对每一步骤怎么操作做出详细的说明(3搭建了基于Red5服务器的开发平台和数据库,编写了包括前台显示和后台服务的代码,并对整个系统进行调试,完成预期的目标。(完成一些最基本的功能,但是很多功能仍然还没有完成,比如多人发布以及在发布IP和服务器不在一台PC 上时,另外一台PC却无法看到实时直播总体来说,本文采用目前比较新的B/S架构技术,设计并完成了视频监控系统。本系统采用的是Red5流媒体服务器,前台网页用JSP语言编写,后台视频发布到服务器用Flex/Flash语言编写,功能上基本完成了基

5、于B/S的视频监控。B/S结构(Browser/Server,浏览器/服务器模式,是WEB兴起后的一种网络结构模式, WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser,如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server 等数据库。浏览器通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(T

6、CO。C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。关键词:B/S结构;视频监控;流媒体;Red5服务器;RTMP

7、 (RTMP介绍ABSTRACTThe background software of general video server is divided into C/S mode and B/S mode. Since the 1990s, C/S mode technology has already been quite mature. But the video monitoring system based on C/S mode must be installed the client software, which causes inconvenience to users. Wit

8、h the rapid development of Internet and application of all kinds of public information service, more and more users want to watch public video information through the Web browser, however, the traditional C/S architecture can't meet the demand of users. The biggest advantage of B/S mode is that

9、it can be operated anywhere without having to install any special software. Developing the video monitoring system software based on B/S structure can better meet the current demand for network video.In this paper, the main research works about the video monitoring system are asfollows:(1Red5 stream

10、ing media server which is suitable for the development is used, and some information stuff about the server is investigated.(2The overall scheme of video server based on B/S mode is designed, and every link of the scheme is described in detail.(3The development platform and database based on Red5 se

11、rver are constructed, and the program of foreground display and back service is written, and the whole system is debugged which achieves the expected goal.In a word, the current relatively novel B/S mode technology is used in this paper, and the video monitoring system is designed and completed. In

12、this system,a Red5 streaming media server is used, the front desk page is written in JSP language, the background video posted on the service is written in the Flex/Flash language. The video monitoring function based on B/S is completed in the paper.Key words:B/S mode;video surveillance;stream media

13、;Red5 server;RTMP目录第1章绪论 (11.1 背景及意义 (11.2 国内外研究现状及发展趋势 (21.3 本文组织结构 (41.4 本章小结 (4第2章流媒体相关技术基础 (52.1 流媒体服务器简介 (52.2 流媒体相关协议 (52.2.1 RTP/RTCP协议简介 (62.2.2 RTMP协议简介 (82.3 Red5与Flex/Flash简介 (92.3.1 Red5服务器系统架构 (102.3.2 Red5服务器工作机制 (112.4 本章小结 (13第3章开发环境的搭建 (143.1 JDK安装 (143.2 下载Red5流媒体服务器 (143.3 Eclipse

14、配置Flex/Flash插件 (153.4 Eclipse配置Red5插件 (153.4.1 Red5插件安装 (153.4.2 在Eclipse中建立Red5工程 (163.4.3 Red5工程编译 (173.5 安装数据库MySQL (173.5.1 安装MySQL (173.5.2 安装XAMPP (173.6 本章小结 (19第4章视频监控系统设计与实现 (204.1 视频采集与发布 (204.1.1 用Flex/Flash采集USB摄像头 (204.1.2 从视频采集卡发布视频 (214.2 视频播放 (224.3 用户注册与登录 (234.4 系统测试 (244.5 本章小结 (2

15、5第5章总结与展望 (265.1 全文总结 (265.2 未来展望 (26参考文献 (28致谢 (29第1章绪论网络视频监控是近年来随着Internet的普及和通信技术发展出现的一个新概念,它是计算机、通信等多种技术相结合的产物,是提供集成语音、数据、多媒体、控制和管理能力的一种崭新应用技术。随着网络带宽、计算机处理能力和存储容量的迅速提高,以及各种视频信息处理技术的实现,全程数字化、网络化的视频监控系统优势愈发明显。1.1 背景及意义C/S(Client/Server和B/S(Browser/Server是当今世界开发模式技术架构的两大主流技术1,C/S是美国Borland公司最早研发,B/

16、S是美国微软公司研发。目前,国内大多数的视频监控系统都是基于C/S架构,用户主要通过局域网连接到监控设备进行实时监控。这种监控方式主要应用在银行,楼宇监控等场合。然而,当监控人员的工作地点离受控场所较远以及要对多个受控场所进行集中管理时,C/S 架构的监控系统就不太适用了。随着网络技术的发展,产生了基于浏览器的B/S 架构的数字视频监控系统,用户可以在任何位置通过广域网对受控场所进行实时监控,而不需要受到空间距离的限制。同时,B/S架构的视频监控系统可以把多个地点分散的受控场所通过广域网连接起来,为多个监控场所的集中管理提供了一种行之有效的方法。C/S架构把集中管理模式转化为一种服务器与客户机

17、负荷均衡的分布式计算模式,解决了执行效率及容量不足的问题。该结构以PC为主,适合部门级应用。随着应用规模扩展,网络上异种资源类型的增多,开发、管理、维护的复杂程度加大,后期成本骤升,缺乏关键事物处理的安全性与并发处理能力。以网络中心计算为特征的B/S架构恰到好处地取长补短,兼容并蓄,使计算体系真正成为企业生存发展的生命力。B/S架构使数据及应用可通过不同平台、不同网络存取,与平台无关,伸缩性大,为企业、行业提供了开放的基于标准的综合性服务计算环境,它将处理、储存、通讯能力移入网络,集中主机/终端和C/S的优点,管理集中,只涉及网络服务器,NC通过下载获得升级功能;同时信息高度分散,通过HTTP

18、、JA V A可访问联接任何URL资源和应用,共享程度高,可伸缩扩展性强,具有高度开放性和灵活性,同时具备高速率和安全性,使用户真正投资于应用而不是计算机本身。B/S架构下的远程监控系统是以Web作为通信平台的监控系统,Web技术以HTTP技术为基础2,具有简单、高效、跨平台等优点,己经成为信息网络的一种最普遍应用的信息交互平台,由于采用浏览器作为统一的客户端,相对于传统的B/S架构,它具有许多显著的优点:用户界面一致、友好,方便了用户的使用;软件的安装、维护和升级容易,客户端只要拥有一个浏览器即可访问系统;系统具有良好的可扩展性,功能扩展的工作只需在服务器上完成,所有客户端软件都不需要改动,

19、这些特点正是C/S架构所缺乏的,Web技术大大减少了系统的费用,方便了用户。研究B/S模式下的远程实时监控技术的意义,为未来远程实时监控的发展趋势做了很好的尝试3,研究B/S架构下的远程实时监控技术意义可以综合总结如下:(1B/S架构下的远程实时监控技术无需客户端软件安装,所有客户只要安装有浏览器,通过Internet/Intranet就可以监视生产过程,无须安装其他支撑软件或插件,便于推广到Internet/Intranet广域网络,在保证网络通讯的情况下可以实现全球范围内的远程实时监控;(相比较c/s结构,b/s结构的铺设范围更广,只要有internet的条件下就可以实现,而且操作更方便,

20、无需安装除浏览器之外的插件或者软件(2B/S架构下的远程实时监控技术可以通过网页链接极其方便地集成,维护简单,所有的数据和软件都在服务器端,升级和修改只在服务器端进行,便于维护升级。支持客户机数目多,由于在监视过程中,数据服务器只提供实时变化的数(是不是可以这样理解:由于各种原因无法看到视频直播而是想看录像时,这个功能完成不了,或者在现有这个搭建的程序中无法完成据,占用频带少(怎么理解?,可以支持众多的客户同时浏览;(3工具简单、界面标准及生动直观,无需花费额外的时间来学习软件操作,简单的界面替换了以往的软件包,所有的数据操作对用户都是透明的,用户不用关心数据的来源,一切都由服务器及专用的数据

21、库来处理。(这些不是这个的系统的优势或者研究意义,我觉得只要是个视频监控系统都可以完成这样的功能1.2 国内外研究现状及发展趋势仅仅用了二十几年的时间,视频监控系统的发展经历了巨大的变化,从早期的模拟监控到近年来异常火爆的数字监控再到悄然升起的网络视频监控,这之间视频监控系统发生了天翻地覆的变化。从技术角度出发,视频监控系统发展主要分为以下三个阶段4:第一阶段:七十年代末到九十年代中期,这个阶段以闭路电视监控系统为主,也就是第一代模拟电视监控系统。其传输媒介为视频线缆。由控制主机进行模拟处理。主要应用于银行、政府机关等高档场所;第二阶段,九十年代中期至九十年代末,以基于PC机插卡式的视频监控系

22、统为主,此阶段也被业内人士称为半数字时代。其传输媒介依然是视频线缆。由多媒体控制主机或硬盘录像主机DVR(Digital Video Recorder进行数字处理与存贮。此阶段的应用也多限于对安全程度要求较高的场所;第三阶段,九十年代末至今,以嵌入式技术为依托,以网络、通信技术为平台,以智能图像分析为特色的网络视频监控系统为主,自此,网络视频监控的发展也进入了数字时代。网络视频监控的应用不再局限于安全防护,逐渐也被用于远程办公、远程医疗、远程教学等领域。视频监控系统是安全防范系统的重要组成部分,是一种防范能力较强的综合系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。近年来,随着

23、现代科学技术的不断发展特别是网络带宽、计算机处理能力和存储容量的迅速提高以及各种实用视频信息处理技术的出现,视频监控技术也有长足的发展,视频监控进入了全数字化的网络时代,日益受到人们的重视和关注。视频监控系统的发展基本上是从早期的模拟闭路电视监控系统向数模结合的视频监控系统和现在的数字视频监控系统演变的过程,而现在的数字视频监控系统根据技术的发展又分为三个阶段:数字监控的多媒体阶段、数字监控的DVR阶段和数字监控的网络阶段。国内外的视频监控系统正朝着集先进的视频编解码技术、网络传输技术、智能视频分析技术、海量存储管理技术、高清视频采集传输和高清视频显示技术为一体的规范化的视频图像信息系统方向发

24、展。视频监控技术主要经历了四个阶段的发展5。分别是以闭路电视系统为基础构建的模拟系统、以数字信号控制为中心的模拟视频监控系统、以数字硬盘录像设备为核心的视频监控系统和数字网络视频监控系统四个阶段。基于B/S结构的视频监控业务是近年来随着Internet的普及和通信技术发展出现的一个新概念;它是计算机、通信等多种技术相结合的产物,是提供集成的多媒体、控制和管理功能的一种崭新的应用技术6。它完全基于宽带网的图像远程监控、传输、存储、管理的新型增值业务7。该业务系统利用宽带网络将分散、独立的图象采集点进行联网,实现跨区域的统一监控、统一存储、统一管理、资源共享,为各行业的管理决策者提供了一种全新的、

25、直观的,扩大视觉和听觉范围的管理工具,提高工作绩效。网络视频监控平台已经在各个行业和领域得到了非常广泛的应用。网络视频监控的发展,使视频监控业务的应用前景越来越广阔,成为各行各业广泛应用的监督手段和管理资源,并且成为电信运营商一个新的利润增长点8。目前,大规模的网络视频监控业务尚处于起步阶段,未来的视频监控系统,必将融合3G宽带移动无线网、卫星通信网等技术,网络化、数字化、智能化、移动化是必然趋势,用户对其功能的需求也体现出多元化与系统化。1.3 本文组织结构本文主要介绍了基于B/S视频监控的发展现状及流媒体服务器的相关概念,并选择了一种开源服务器作为开发平台。本文详细介绍了各种开发环境的搭配

26、,并且附有相关截图和组要代码。论文详细结构安排如下:第1章主要论述了本论文所研究课题的背景与意义、国内外研究现状与发展趋势,同时对论文的组织结构做了安排。第2章主要介绍了流媒体服务器的相关概念,以及用于实时视频流传输的几种协议。并且对接下来要讨论的Red5流媒体服务器及相关技术做了简要介绍。第3章介绍了本次开发视频服务器所用到的开发软件。主要讨论的是这些软件的配置安装以及简要使用。可以看到的是服务器的配置安装是相对较为复杂的过程,开发过程中用到了较多技术。第4章完成了视频采集、视频播放以及用户登录的设计与实现。对开发过程中的关键位置坐了较为详细的讲解。第5章对本文的研究工作做一个回顾,总结不足

27、之处,展望今后的工作。1.4 本章小结本章主要介绍了基于B/S结构的监控系统的研究背景及意义、国内外研究现状。然后对本文的组织结构做了简单的说明。第2章流媒体相关技术基础本章首先介绍了流媒体服务器相关概念,然后简要介绍了与流媒体相关的几种协议,最后选择了一种开源Red5流媒体服务器作为研究对象,并且对Red5流媒体服务器的原理和开发过程做了较为详细的介绍。2.1 流媒体服务器简介在网络上传输音/视频等多媒体信息,目前主要有下载和流式传输两种方案。音视频文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。流式传输时,声音、影

28、像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。流媒体指在Internet中使用流式传输技术的连续时基媒体9,如:音频、视频或多媒体文件。流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输

29、。流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频的技术总称。其特定含义为通过Internet将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输和顺序流式传输。一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如RTSP(Real Time Streaming Protocol的实时协议,即为实时流式传输。如使用HTTP服务器,文件即通过顺序流发送。随着媒体素材的丰富、文件的增大,传统的媒体获取方式已经无法为人们提供良好的使用体验。在此背景之下,流媒体技术应运而生,是网络媒体发展达到一定阶段的必然产物。2.2 流媒体相关协议流媒体服务器的主要功能是以流式协议(R

30、TP/RTSP、MMS、RTMP等将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。典型的流媒体服务器有微软的Windows Media Service(WMS,它采用MMS 协议接收、传输视频,采用Windows Media Player(WMP作为前端播放器; RealNetworks公司的Helix Server,采用RTP/RTSP协议接收、传输视频,采用Real Player作为播放前端;Adobe公司的Flash Media Server,采用RTMP(RTMPT/RTMPE/RTMPS协议接收、传输视频,采用Flash Pl

31、ayer作为播放前端。值得注意的是,随着Adobe公司的Flash播放器的普及(根据Adobe官方数据,Flash播放器装机量已高达99%以上,越来越多的网络视频开始采用Flash播放器作为播放前端,因此,越来越多的企业开始采用兼容Flash播放器的流媒体服务器,而开始淘汰其他类型的流媒体服务器。支持Flash播放器的流媒体服务器,除了Adobe Flash Media Server,还有Ultrant Flash Media Server流媒体服务器软件,以及基于Java语言的开源软件Red5。2.2.1 RTP/RTCP协议简介RTP协议最早是IETF(Internet Engineeri

32、ng Task Force在RFC1889文件中提出在RFC3550文件中进行了修订和更新10,它是专门为交互式音频、视频、仿真数据等实时媒体应用而设计的轻型传输协议。它由两个紧密相关的部分组成:实时传输协议RTP(负责传送带有实时信息的数据包;实时传输控制协议RTCP(负责管理传输质量和在当前应用进程之间交换的控制信息。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步11。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RT

33、CP提供这些服务。RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。RTCP主要有4个功能:(1用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;(2为RTP源提供一个永久性的规范性名字的传送层标志,因为在发现冲突或者程序更新重启时SSRC(同

34、步源标识会变,需要一个运作痕迹,在一组相关的会话中接收方也要用规范性名字来从一个指定的与会者得到相联系的数据流(如音频和视频;(3根据与会者的数量来调整RTCP包的发送率;(4传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。当应用程序开始一个RTP会话时将使用两个端口:偶数端口给RTP,和其相邻的下一个奇数端口给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。RTCP和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的

35、数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。对于H.264视频的实时传输应用来说,TCP的重传机制引入的时延和抖动是无法容忍的,因此采用UDP传输协议。但是UDP协议本身是面向无连接的,不能提供质量保证。而基于UDP之上的高层协议RTP/RTCP可以一起提供流量控制和拥塞控制服务。图2.1给出了基于RTP/UDP/IP的H.264视频传输框架。 图2.1 基于RTP/UDP/IP的H.264视频传输框图服务器端:RTP封装模块主要是对H.264码流

36、进行打包封装;RTCP分析模块负责产生和发送RTCP包并分析接收到的RTCP包;QoS反馈控制模块则根据RR报文反馈信息动态的对发送速率进行调整;发送缓冲模块则设置端口发送RTP、RTCP包。客户端:RTP模块对接收到的RTP包进行解析判断;RTCP模块根据SR报文统计关键信息,产生并发送RR包。2.2.2 RTMP协议简介RTMP(Real Time Messaging Protocol是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS,Red5,crtmp

37、server等。RTMP 是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播、点播、聊天等应用,以及PC、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。RTMP协议有三种变种:工作在TCP之上的明文协议,使用端口1935;RTMPT 封装在HTTP请求之中,可穿越防火墙;RTMPS类似RTMPT,但使用的是HTTPS 连接。表2.1和表2.2列出了一些基于RTMP协议的服务器。表2.1 RTMP协议开源服务器 表2.2 RTMP协议商用服务器 RTMP协议就像一个用来装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据。FLV格式不仅可以轻松

38、导入Flash,同时也可以通过RTMP协议从服务器上流式播放,解决了各种文件需要不同的播放器播放的问题,而且也相应减少了视频容量。RTMP协议通过频道的概念进行分包,每128字节为一包,因为包片很短,所以不停的切换,根据时间戳同步,就能实现多流并发播放。RTMP维持一个与一个终端的永久连接,允许实时交流,其他的远程过程调用服务是异步的。RTMP协议是未加密的TCP协议,协议分成三部分:协议头,协议体,协议数据。前两部分数据量比较小,一般都少于128个字节,对于数据流部分,考虑到协议处理,对这部分数据大多采用分包发送的方法,定义成一个个消息包,一般协议体数据长度如果大于128字节就要分包发送,每

39、个包的前一个字节是协议头。接收的时候要一个一个的分析数据包。通过阅读Adobe官网给出的rtmp specification 1.0关于RTMP协议介绍,大致总结RTMP server与播放器之间的交互如图2.2所示。 图2.2 RTMP server与播放器的交互2.3 Red5与Flex/Flash简介现在网络应用的发展趋势是,一方面用户对体验的要求不断提高,另一方面B/S架构却大行其道。开发人员需要在浏览器的限制下给用户更好的体验, Flash/Flex技术开始深受开发人员的喜爱,与之对应的,对FlashServer的研究迫在眉睫。Red5服务器是开源社区对应Adobe公司的FMS(Fl

40、ashMediaServer开发的一款优秀产品8。采用Java开发,使用rtmp作为流媒体传输协议。Red5把Flex/Flash 和Java连为一体,为即时通信,流媒体开发,网络在线游戏提供了一个简单易行的方案。Flash是目前RIA应用的主流解决方案之一,可以说是市占有率最高的富媒体应用,其主要是通过强大的客户端表现能力而降低服务端的压力,因此在互联网高速发展的今天得到很大规模的普及和应用Flash优势还在于其强大的跨浏览器特性,可以非常好地解决各个浏览器的兼容性问题,调查得FlashPlayer的平台普及率在98%,几乎相当于全平台覆盖9,因此跨平台性变得理所当然。2.3.1 Red5服

41、务器系统架构Red5采用的是RTMP协议,RTMP即实时信息协议,是一个专门为高效传输视频.音频和数据而设计的TCP/lP协议。Red5就是基于该协议实现在即时通信,相比其他服务器有以下优点:技术上成熟,易于实现;通信带宽低,可伸缩性大;易于实现快速的商业开发;广泛的支持性;基于TCP/IP协议.是当前多种带宽共存的网络下天然的理想的视频传输的解决方案;相比较FlashMediaServer,Red5属于开源体系,为客户节省的版权费用。Red5是建立在Jetty,Mina基础之上的,并通过使用Spring框架将起整合起来的。采用公开实时消息传送协议(RTMP。Red5架构如图2.3所示。 图2

42、.3 Red5服务器架构Jetty是一款运行速度较快轻量级的开源servlet容器,它的API以一组JAR包的形式发布,开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(Stand-alone的Java应用提供网络和web连接。很多地方项目都将之作为嵌入式服务使用,比如Continuum,Fisheye,GeoServer等。,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。Apache MINA(Multipurpose Infrastrueture for Netw

43、ork Applications是Apache组织下的一个基于Java NIO技术的新项目,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API。Apache MINA也被称作客户端服务器框架库或者网络套接字库。MINA虽然简单但是仍然提供了全功能的网络应用程序框架:为不同的传输类型提供了统一的API:过滤器作为一个扩展特性;类似Servlet 过滤器;低级和高级的API高度定制化线程模型;利用模拟对象进行单元测试; JMX管理能力等。大名鼎鼎的Spring是轻量级Java企业级开发的事实标

44、准。Spring有很多优点:能有效地组织中间层对象;能消除在许多工程上对Singleton的过多使用;能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置;通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零;被设计为让使用它创建的应用尽可能少的依赖于他的APIs,在Spring应用中的大多数业务对象没有依赖于Spring;使用Spring构建的应用程序易于单元测试;能使EJB的使用成为一个实现选择,而不是应用架构的必然选择;为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate。Red5采用Spring来

45、管理使程序逻辑更加清晰,耦合性更低,扩展性更好。2.3.2 Red5服务器工作机制要对Red5 服务器进行功能扩展,首先需要通过源码了解其整个工作流程及核心接口。下面将从这两个方面进行分析: 工作流程Red5服务器的工作流程如下:(1通过Spring的IOC方式读取red-core.xml配置文件,实例化RTMPMinaTransport类。(2调用RTMPMinaTransport类的start方法,该方法创建SocketAcceptor(默认绑定到1935端口,并将该SocketAcceptor加入到线程池ThreadPoolExecutor中进行管理。(3当有socket请

46、求时,RTMPMinaIoHandler类的sessionCreated方法会被调用,创建RTMPMinaConnection,通过其中的connect方法实现和客户端IClient的连接。(4随后在类RTMPHandler 中的onInvoke方法中,通过主机和应用名字找到global(server scope,通过global的上下文找到Scope,最后调用RTMPMinaConnection的connect方法连接到相应的Scope。(5Red5 将请求转移到配置文件中定义的Scope,也就是实际项目中ApplicationAdapter类,由它来最终响应客户端的请求,具体的数据处理流程

47、如图2.4所示。 图2.4 Red5服务流程 核心接口Red5在设计之初就考虑到了功能扩展问题,因此需要对其核心接口功能进行深入理解,便于二次开发,下面对主要的核心接口进行介绍:Iconnection:表示一个连接对象,对应到相应的客户端和域,连接类型包括持续型、轮询型、或者短暂型。此接口描述了连接类的基础方法,便于子类在此基础上进行扩展。如子接口IserviceCapableConnection增加了调用和处理远程调用的方法。IServiceCapableConnection:具有调用或处理远程调用的连接。一般用法是先获取当前连接对象的引用,判断连接是否继承自IServiceC

48、apableConnection接口,最后使用其invoke方法调用客户端方法。IScope:定义了Red5中作用域对象。该对象维护了一个由一组客户端连接组成的上下文状态。通过作用域对象可以轻松的实现一个分级访问、区域对象的共享的功能。对于一个作用域对象它可以有父作用域对象,也可以有子作用域对象。通过作用域对象就可以访问资源、共享对象和视音频流等。IClient:就是指某个客户端。不过这个客服端只是有客户端的属性,并不通过它调用方法。一个客服端可以和同一主机下不同的域分别建立连接,于是从某些地方来看,客服端对象和httpsession很相像。MultiThreadedApplicationAd

49、apter:Red5 应用程序的基础类,可以对流进行连接处理。具体实现是提供一个有用的事件控制句柄,可以用于拦截流和授权用户等。作为ApplicationAdapter的父类,其提供了多线程的特性。在应用程序的整个生命周期中,经常会重写或调用MultiThreadedApplicationAdapter 类的以下几个方法:(1应用程序启动时自动执行:public boolean appStart(IScope app(2应用程序停止时自动执行:public void appStop(IScope app(3Flex/Flash 客户端连接服务器时自动运行:public boolean appC

50、onnect(IConnection conn,Object params(4Flex/Flash客户端与服务器断开连接时触发:public void appDisconnect(IConnection conn2.4 本章小结本章主要介绍了本文的一些理论基础,首先概括的介绍了流媒体服务器,然后介绍了一些与流媒体服务器相关的协议,其中重点讲解了RTP协议和RTMP协议。然后选择了Red5流媒体服务器作为研究对象,介绍了Red5流媒体服务器的基本原理、组成结构和工作机制等。第3章开发环境的搭建本章主要介绍的是在毕设过程中用到的相关软件,如:JDK、Red5、Eclipse、MySQL等,并且详细

51、的介绍了这些软件的安装方法。在配置好这些开发环境之后,就可以进行视频监控系统的开发了。3.1 JDK安装由于Red5流媒体服务器是采用Java开发的,所以必须要先安装JDK,否则Red5无法正常安装启动。JDK是Java Development Kit 的简称,即Java开发工具包,JDK是Sun公司针对Java开发者的产品,提供了Java的开发环境和运行环境。自从Java推出以来,JDK已经成为使用最广Java SDK(software development kit。JDK是整个Java的核心,它包括了Java运行环境,一堆Java工具和Java基础的类库(rt.jar。JDK除了包括JR

52、E的全部内容外,还包括了开发者用以编译,调试和运行Java程序的工具。现在流行的集成开发工具(例如Eclipse、Jbuilder和NetBean等都是必须基于JDK环境,只不过有些集成工具在安装过程中内置安装了JDK,有些则需要事先单独安装。JDK下载完成后选择默认安装。在JDK安装完毕后,为了在命令模式下编译、运行程序方便,需要进行系统环境配置,需要配置的环境变量如表3.1所示。表3.1 JDK环境变量设置 3.2 下载Red5流媒体服务器登陆Red5 的google code地址: 1.0.0 Final的windows版本。安装过程中提示输入IP和端口号,IP输入,端口号

53、输入5080。安装完毕之后,在根目录下的red5.bat启动Red5服务器,打开浏览器,输入localhost:5080。看到如图3.1界面,即表示安装成功。 图3.1 Red5配置成功3.3 Eclipse配置Flex/Flash插件Eclipse是著名的跨平台的自由集成开发环境(IDE。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse是开放源

54、代码的项目,可以到去免费下载Eclipse的最新版本。Eclipse本身是用Java语言编写,但下载的压缩包中并不包含Java运行环境,需要用户自己另行安装JRE,并且要在操作系统的环境变量中指明JRE中bin的路径。安装Eclipse的步骤非常简单:只需将下载的压缩包按原路径直接解压既可。3.4 Eclipse配置Red5插件3.4.1 Red5插件安装在Red5官方网上提供了Red5的eclipse插件,使用时发现与该插件相匹配的Red5版本较老,适合Eclipse JEE 版本,不适于标准Java 版本。下面将对出现的问题做具体介绍。首先在eclipse主菜

55、单中打开help,在下拉菜单中选中Install new software,出现如图3.2所示界面。 图3.2 Red5插件安装点击Add按键,弹出的对话框中需要填写安装插件的名称和地址,名称填Red5Plugin,地址填:/downloads/projects/red5plugin/update_0.2.x/然后单击下一步,稍等片刻,软件会找到要安装的插件,选中后该插件后,点击安装,即可完成插件的安装。3.4.2 在Eclipse中建立Red5工程在eclipse中新建一个Dynamic Web Project,在弹出的对话框中填入项目名称,然后单击New

56、 Runtime按钮会出现如图3.3的界面。 图3.3 Red5插件安装选项选中Red5 Server Runtime,点击next后,会弹出选择JDK和Red5的安装路径。JDK选择3.1节中的安装路径,Red5选择3.2节中的安装路径。选择Red5安装路径时会提示找不到red5.jar。原因是Red5 1.0之后red5.jar该名为red5-server-x.jar(x 是具体版本号,所以进入Red5安装目录,将red5-server-x.jar改名为red5.jar即可。这里出现问题主要是因为插件版本与服务器版本不一致所致,下面还会遇到一些类似问题。创建完工程后,还需要在eclipse

57、中对Red5进行服务器关联。在eclipse主界面中找到“server”导航栏,右击并选择“new>server”,弹出了red5的配置菜单,根据导航栏的要求,一步步选择Red5的安装目录,即可完成服务器的创建。在编译自己的工程时,将工程添加到所创键的服务器中,即可调试运行。3.4.3 Red5工程编译在Red5工程编译时会出现两个问题,一是red5插件自动生成的Application.java 类中有些包含的类找不到,原因是Red5插件中类的路径和服务器路径有所区别,更改相应的路径即可解决问题;二是启动Red5服务时报错,原因是Red5服务器在服务中已经启动,解决方法是在windows服务中,将Red5自动启动改为手动。另外,每次运行完后,手动关闭服务器,否则下次调试时,会报错。3.5 安装数据库MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论