青岛科技大学本科毕业设计(论文)1引言当前信息化时代,由于以因特网为代表的计算机网络的迅猛发展、相关通信技术的日益完善,传统通信方式的时空和地域障碍得到了突破,使更大范围内的通信变得十分容易。而随着计算机技术以及网络通信技术的飞速发展,远程视频监控系统将先进的流媒体技术、实时视频传输技术有效地结合在一起,成为视频监控系统的一个发展趋势。多媒体网络应用需占用较大带宽,以前由于网络带宽的限制,应用不多,而在手机移动通信网上的实现就更显得长路漫漫。现在由于因特网的迅速普及和多媒体技术在互联网上的应用,以及数字视频、音频压缩编解码技术的目益成熟,各种视频通信应用,如基于多媒体的远程监控系统技术也逐步发展、成熟。而TD网络的高频谱利用率也使得流媒体在移动通信网络中传输的流畅度大大提高,使得流媒体传输于移动通信网的设想更显实际。实时流媒体传输的特点是要求传输带宽高、网络延迟小、数据顺序播放,传统协议如TCP和UDP很难满足要求。TCP是在窄带上为得到可靠的数据信息设计的一种传输层协议,它把可靠的数据传输作为主要任务,对其他要求缺乏保障。UDP是一种不可靠协议,不能保证每条信息都能到达目的地,也不能保证信息按照它们发出的顺序到达。TCP、UDP作为普通的传输层协议都不宜传输实时流媒体。而RTP协议能以有效地反馈和最小地开销使传输效率最佳化,特别适合传输网络上的实时音视频等多媒体数据。目前,视频远程监控系统几乎都是基于客户机/服务器(c/s)模式的:带有采集设备并安装服务器端软件的本地机组成服务器端,各个远端计算机则相当于多个客户端,客户端需要安装专用的客户端软件才可以实现监控。而基于TD-SCDMA移动通信网络的由手机作为客户端的视频监控系统还比较少见。由于Java技术具有跨平台性和可移植性强等特点,SUN公司推出了一种开发流媒体应用的应用程序接口JMF(JavaMediaFramework)。它支持多媒体数据的回放和实时传输等媒体操作。在实时传输上,JMF支持实时传输协议RTP。在数据播放上,JMF支持大多数的媒体格式。利用JMF开发多媒体实时传输系统是流媒体技术领域未来发展和研究的热点,具有广阔的发展和应用前景。SQLServer是一种高性能、关系型数据库管理系统,以其功能完备、兼容性好、容易上手等特点获得了广泛的应用。SQLServer2005是一个全面的数基于TD-SCDMA的视频传输与监控系统-多媒体实时传输协议的开发与实现2据库平台,使用集成的商业智能工具提供了企业级的数据管理。SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。基于以上所述,现用Java语言开发一个适应于基于TD-SCDMA网络的视频监控系统的多媒体传输协议,以实现流媒体在本系统中的传输。青岛科技大学本科毕业设计(论文)31主要技术和方法简介1.1Eclipse——IBM的JavaIDE开发环境简介1.1.1IBM-Eclipse简介:图1-1Eclipse-Galileo3.5版本界面图Fig.1-1InterfaceMapofEclipse-Galileo3.5Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发基于TD-SCDMA的视频传输与监控系统-多媒体实时传输协议的开发与实现4商以Eclipse为框架开发自己的IDE。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开发源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。[1]1.2.1Eclipse插件开发环境虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于Eclipse的应用程序的突出例子是IBM的WebSphereStudioWorkbench,它构成了IBMJava开发工具系列的基础。例如,WebSphereStudioApplicationDeveloper添加了对JSP、Servlet、EJB、XML、Web服务和数据库访问的支持。1.3.1Eclipse的主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一青岛科技大学本科毕业设计(论文)5个工具功能在哪里结束,而另一个工具功能在哪里开始。[1]1.4.1EclipseSDKEclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的许可协议。1.2数据库技术介绍1.2.1数据库技术所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据的结合,数据库管理系统(DatabaseManagementSystem)就是一种操纵和管理数据库的大型软件,简称DBMS,它们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义、数据库管理、数据库建立和维护、与操作系统通讯等。DBMS通常由数据字典、数据描述语言及其编译程序、数据操纵(查询)语言及其编译程序、数据库管理例行程序等部分组成。关系数据库是以关系模型为基础的数据库,是数据表、记录、字段之间的关系将这些表联系在一起,关系数据库提供了成为结构化查询语句(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最流行的数据库。1.2.2SQLSever2005的特点SQLServer2005的特点主要有:(1)高可用性:SQLServer2005的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。(2)安全性:SQLServer2005的安全达到了很强大水平,有着很更清晰的安全模型即主体,安全对象和权限。SQLServer2005旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。(3)异步处理能力:ServiceBroker提供了一个功能强大的异步编程模型。Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是基于TD-SCDMA的视频传输与监控系统-多媒体实时传输协议的开发与实现6集成于数据库中,备份数据库就备份了broker的消息队列。(4)可伸缩性:SQLServer2005可伸缩性的先进性包括表格分区、复制能力的增强和64位支持。1.2.3JDBC-ODBC桥介绍当Java与数据库进行交互的时候要用到JDBC-ODBC桥进行连接。由于微软的数据库不是用Java语言来编写的,但是我们需要用Java语言连接微软的数据库,这样就要编写一个桥连接,使java语言编写的代码也可以操作数据库。JDBC-ODBC这个桥连接就可以实现。建立一个JDBC-ODBC桥连接,由于建立桥连接时可能会发生异常,因此,要捕获这个异常。建立桥连接的标准如下:try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);}catch(ClassNotFoundExceptione){}这里,Class是包java.lang中的一个类,该类通过调用静态方法forName加载sun.jdbc.odbc包中JdbcOdbcDriver类来建立JDBC-ODBC桥接器。[2]图1-2JDBC-ODBC应用模式Fig.1-2ApplicationModeofJDBC-ODBCJAVA应用程序JDBC-ODBC桥JDBCAPIODBCAPIODBC层数据库青岛科技大学本科毕业设计(论文)71.3RTP实时传送协议1.3.1概述实时传送协议(Real-timeTransportProtocol或简写RTP,也可以写成RTTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC1889中公布的。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(PushtoTalk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在用户数据报协议上的。[3]它作为因特网标准在RFC3550(该文档的旧版本是RFC1889)有详细说明。RFC3551(STD65,旧版本是RFC1890)详细描述了使用最小控制的音频和视频会议。RTP本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,