基于NAS的视频存储与回放系统的设计与实现——硕士论文_第1页
基于NAS的视频存储与回放系统的设计与实现——硕士论文_第2页
基于NAS的视频存储与回放系统的设计与实现——硕士论文_第3页
基于NAS的视频存储与回放系统的设计与实现——硕士论文_第4页
基于NAS的视频存储与回放系统的设计与实现——硕士论文_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

学校代码: 分类号: 密 级: 公开 UDC: 学 号: 工程硕士学位论文基于NAS的视频存储与回放系统的设计与实现 研究生姓名: 导师姓名: 校外导师: 申请学位类别 工程硕士 学位授予单位 东 南 大 学 工程领域名称 软件工程 论文答辩日期 年 月 日 研究方向 软件工程 学位授予日期 20 年 月 日 答辩委员会主席 评 阅 人 年 月 日 摘要 关键字: IABSTRACT Abtract : 东南大学硕士学位论文目录摘要IABSTRACTII第一章 绪论11.1 研究背景11.2 国内外研究现状21.3 课题研究的目的及意义41.4 论文研究的主要内容41.5 论文章节安排4第二章 系统关键技术62.1 嵌入式开发62.1.1 嵌入式处理器和实时操作系统62.1.2 嵌入式交叉开发环境72.1.3 嵌入式Linux特点82.2 系统设计的关键技术82.2.1 视频存储策略82.2.2 流媒体技术92.2.3 实时流媒体协议(RTSP)122.2.4 ONVIF协议142.3 本章小结15第三章 需求分析与系统总体设计163.1 需求分析163.2 系统设计目标173.3 软件系统总体设计173.4 本章小结18第四章 系统实现(第一部分)194.1 摄像机自动发现194.2 网页配置功能214.2.1 Django框架224.2.2 Django工作原理分析224.2.3 配置模块的实现244.2.4 网页部署254.3 硬盘选取实现264.4 视频数据的存储274.5 数据检索284.5.1 数据库表建立284.5.2 视频数据的检索294.6 本章小结30第五章 系统实现(第二部分)315.1 SOAP协议315.1.1 协议内容315.1.2 协议结构325.1.3 gSOAP工具325.1.4 网络服务描述语言325.2 摄像机连接实现335.2.1 流URL获取335.2.2 RTSP客户端实现355.2.3 RTP解包365.3 任务管理实现415.4 RTSP服务实现415.5 RTP封装455.6 本章小结48第六章 系统测试结果496.1 NAS设备硬件496.2 系统测试496.2.1 系统测试环境496.2.2 系统测试工具496.2.3 测试数据分析496.3 测试结果516.4 摄像机配置界面516.5 客户端点播界面526.6 本章小结53第七章 总结与展望547.1 论文工作总结547.2 研究工作展望54参考文献56致谢58 第一章 绪论1.1 研究背景由于网络技术的发展,各行各业对网络的依赖程度越来越强烈,网络让人们可以分享信息,相比本地有限的存储容量,网络提供更多的信息量,更多的存储容量。随之而来产生了SAN(STORAGE AREA NETWORKS:存储区域网络)和NAS(NETWORK ATTACHED STORAGE:网络附加存储)这样的产品。越来越多的数据证明,网络存储已成为继个人计算机和互联网之后的第三次IT浪潮的引导者。从存储的数据量的急剧增加引发存储方式的转变,按存储数据量的大小则是由前端存储、集中存储到分布存储这样梯形增加,以集中存储为中心的网络存储已成为全球各商家及企业最为关注的信息技术之一。NAS是网络存储最主要的形式之一,特点是操作系统完全以数据为中心,将存储设备与传统服务器彻底分离,通过内嵌操作系统和管理软件对数据集中管理,便于用户安装、维护和升级,同时有效释放带宽,从而提高网络性能,因此广泛应用于各个行业。视频监控涉及到大量的视频数据,在视频监控进入网络时代以后,将网络存储技术引入到网络监控中是必然趋势。近年来,“平安城市”、“3111工程”、“全球眼”、“宽视界”等重大项目的开展足以看出安防在国内具有巨大的发展潜力,视频监控在交通、食品、卫生检疫、海关、能源、金融、国防等领域广泛应用,拥有很大的市场潜力。市场的扩大促使安防技术不断进步。网络的发展则带给了这个行业带来了一次全新的变革,目前安防监控技术已经从模拟到数字再到网络监控的转变,最为主要的是视频数据量急剧增大,视频数据存储已成为监控行业主要研究方向之一,NAS在网络存储中应用非常广泛,则必然在监控行业也有广泛的市场前景。监控行业在数字化的时代,视频存储这块主要的产品是NVR(网络硬盘录像机)和DVR(数字硬盘录像机),数字时代的早期主要是DVR,后来因为网络的发展导致网络监控的普及、带来了各式各样的IPC(网络摄像机)、监控网络部署成本的降低进而使的NVR取代了DVR,成为监控行业视频存储的主流产品。但是随着监控网络规模的扩大化、复杂化对存储产品要求也不断提高。目前监控行业的存储解决方案主要有四种:、传统的(DVR)数字硬盘录像机采用的方式,采用IDE硬盘或者SATA硬盘读写,不算是专业的存储产品,其对于数据存储要求的稳定性、安全性、管理、维护性和拓展性都不符合要求;、DAS(直接附加存储),直接连接磁盘阵列实现存储模式,主要弱势有拓展性差、资源利用率低、无法资源共享等;、NAS存储,其是一种文件共享服务,拥有自己的文件系统,是基于“文件级”的存储方式,具有良好的资源共享能力和较高的安全性;、SAN存储,是一种通过网络方式连接存储设备和应用服务器的存储架构,是基于“数据块”的存储方式,这种方式拓展性良好,有效的提高系统的性能。NVR类产品提供的解决方案依据部署规模主要采用和这两种存储模式。存储模式属于中高端应用,NVR则面向中低端。目前面向中低端的市场,NVR采用NAS存储方案的优势,将应用程序运行在NAS设备上,有效提高了带宽利用率,又因为其存储方案为NAS,具备远程挂载、实现资源共享、有效的增加资源的安全性,那么对于采用NAS存储方式的NVR类产品在中低端市场上是具有一定需求的,因此本文讲述的就是将视频存储和回放直接假设到NAS设备上,有效的节约硬件成本,不仅可以利用NAS的存储优势,又可在NAS设备上运行应用程序采集视频和管理视频。因此设计一个基于NAS的高性能视频存储与回放系统是很有意义的。1.2 国内外研究现状网络技术的发展,让数据资源得到了有效的利用,网络存储数据急剧增加,引发了数据存储的更替,大致经历了三代,分别是DAS、NAS、SAN。最初的存储方式前面所述的DAS,I/O(输入和输出)请求直接发送到存储设备,早期网络的发展使其得到发展,到了二十世纪八十年代,计算有大型的集中式系统发展成为灵活的客户端分布式服务器模式,又因处在初级阶段的局域网推动了这一转变。连接服务器的存储(Server-Attach Storage)和DAS很相似,但部署方式为分布式,并依赖局域网的连接得以实现。计算能力、内存、存储密度和网络带宽的进一步增长导致越来越多的数据存储在个人PC和工作站中,这样分布式的计算和存储的增长对存储技术有了更高的要求,今天,所有的存储操作都有通过CPU的I/O来完成,使用DAS存储设备和主机操作系统紧密相连,系统则背负多重负担,硬盘读写和应用运行,如果对于存储数据读写繁多的话,则应用程序运行会急剧恶化,加上无法实现文件共享,因此DAS架构基本已不再被采用。NAS是将存储设备通过标准的网络拓扑结构,连接到一群计算机上,包含了一个特殊的文件服务器和存储架构。局域网技术广泛实施,计算机的激增引发了数据不兼容性问题突发,从而使得数据获取的方式日趋复杂,采用局域网加工作站族的方式实现文件共享,对互操作性和节约成本有很大的意义。NAS类产品操作简单,采用优异的文件系统和预配置的存储设备,局域网客户端可直接通过NAS系统与存储设备交互。目前支持windows、NetWare、Unix、Linux。后来出现了SAN,存储工业协会(SNIA)对SAN架构的定义:一个主要目的是用于计算机系统和存储组件以及存储组件之间进行数据传输的网络。SAN包含通用通信基础结构,包含物理连接和管理层,可以将连接、存储组件和计算机系统组织起来,确保数据的安全和稳定。SAN通常只块I/O服务而不是文件访问服务。先后发展起来两种SAN,如果基于FC协议的则称为FC-SAN,如果基于iSCSI协议的为IP-SAN。表1.1列出了硬盘、DAS、NAS、FC-SAN和IP-SAN的相关数据,并且进行了比较。 存储方案功能类型硬盘DASNASFC-SANIP-SAN数据保护机制不具备具备具备具备具备高共享性能不具备不具备具备具备具备存储设备集中管理不具备具备具备具备具备数据高可用性不具备具备具备具备具备高速读写性能具备具备不具备具备具备可拓展性不具备不具备具备有限具备具备投入成本低低低高低维护成本高较高中高低使用领域系统后备存储小型监控系统扩容中小型监控系统构建大型监控系统构建各类型的监控系统构建、扩容表1.1存储方案分析对照表在硬件和网络结构方面,NAS集成磁盘阵列的优点,在数据管理方面配置方便和快捷,在由上表做出的分析和比较,得出视频监控行业在符合NAS部署规模的监控网络中,应用NAS是一个比较理想的存储方式,因此在监控行业NAS的市场前景很大。NAS产品一直作为一种通用存储方案,因此应用范围很广。单做存储的行业公司其产品无法做到完全符合监控需求,一般做到的是兼顾通用性,而监控行业做存储的更倾向于缺乏做存储的具体应用而缺乏做NAS存储设备的技术,因此在一个NAS存储技术比较成熟的产品之上结合监控行业存储软件技术,在NAS设备上设计实现并运行视频存储和回放系统是很有市场潜力的。前端的存储,由于监控行业的特殊性导致存储的数据是巨大的,而网络存储就是因为不断扩大的存储容量需求产生的。SAN(STORAGE AREA NETWORKS)存储区域网络和NAS(NETWORK ATTACHED STORAGE)网络附加存储是两种证明可行的网络存储方式。文件系统在存储子系统中的存在得以将NAS从SAN中区分开来,不过这两种存储方式的选取完全取决于用户的需求。由于监控行业视频数据的巨大,建立相对独立的视频存储系统是监控行业未来发展的一个方向,因此将网络存储应用到监控行业是显而易见的。用户自然可以在两种流行的存储方式中随意选择,但是就如前面所述,用户可以根据监控的规模需求来决定,NAS一般应用于中小规模的存储,而SAN则多适用于大中规模的存储。目前在监控行业的较为流行的设备为NVR(Network Video Recorder)网络硬盘录像机,而NAS在监控行业应用多为将NAS设备挂在到NVR设备之上,需要依赖NVR的转发功能,但是系统搭建成本过高,而且这种做法并没有真正做到视频存储的独立性。1.3 课题研究的目的及意义该课题旨在分析监控行业的目前网络监控产品的软件应用和NAS设备对视频存储的支持情况,以及它们可移植性、拓展性、安全性、稳定性进行分析,比较各自优缺点,得出在NAS设备上直接运行监控行业的应用软件,能够更好的发挥出各自的优势,让NAS设备在监控行业的运用最大化和具体化。1.4 论文研究的主要内容该课题研究的主要内容是在充分了解和研究了NAS存储方案以后,分析和研究了视频存储和回放的解决方案,得出在NAS设备上运行视频存储与回放系统具有很高的应用价值,并进行了工程实践。主要工作包含一下几个方面:在基于公司选定的采用linux操作系统的NAS设备上,进行对于开发该系统的理论分析和研究。1、对于该系统实现中需要应用到的流媒体传输技术和数据存储策略的关键技术进行研究与分析。2、对开发本系统的基础性前提进行研究与分析,包含嵌入式开发以及linux的特点。3、对系统总体结构进行设计,对系统子模块应用的一般技术进行研究与分析,并在该子系统中进行应用。1.5 论文章节安排第一章 绪论,介绍课题研究的基础、来源、意义以及本文的主要内容和工作安排。第二章 系统的关键技术,论述了嵌入式开发,分析了系统设计的关键技术。第三章 需求分析与系统总体设计,论述了视频监控对NAS设备的应用需求,以及基于NAS设备的应用软件系统的总体结构,以及各模块的简要说明。第四章 系统实现(第一部分),包含系统配置模块的详细实现和系统存储模块的详细实现,介绍了该系统视频存储模块的具体实现和该系统视频存储模块的具体实现。第五章 系统实现(第二部分),包含摄像机配置模块详细实现和摄像机连接模块的详细实现,介绍了该系统摄像机配置模块的具体实现和该系统的摄像机接入模块的具体实现。第六章 系统测试结果,给出了系统测试结果以及系统运行效果展示。第七章 总结与展望,对整个系统的分析研究与实现做出总结,并对后期研究作出展望。 59 第二章 系统关键技术伴随着网络和多媒体技术的高速发展和日趋成熟,给视频监控行业带来了巨大的变化,数字硬盘录像机(DVR)、网络硬盘录像机(NVR)、磁盘阵列等相关产品的出现代表着监控行业向数字化、网络化、智能化方向发展,其中视频数据的压缩、存储、传输、图像处理是数字视频监控领域的关键技术。在视频数据压缩方面,目前大部分视频数据编码方式多为MPEG-2/MPEG-4或者H.263/H.264格式编码的,较以前的模拟视频,不仅图像质量得到大幅度的提高,而且码流速率大大降低,这对于有限的网络资源来说,具备了很大的应用潜力。数据存储通常包含有两种方式,一种基于文件系统,一种基于数据库。这两种方式主要是希望降低磁盘碎片。视频传输受网络带宽和实际需求的影响,目前接收视频流存在两种方案:下载机制和视频流方式。采用下载机制的客户端要求下载完整文件才可以播放,在监控行业中要求摄像机视频流实时接收并实时播放,因此下载机制无法应用该行业中。所以为了满足实时观看的需求,必须采用视频流方式。该系统运行在NAS设备之上,软件系统设计首先要考虑的是选用何种开发方式,以及系统的总体架构和各个模块需要完成的工作等。目前NAS产品大部分都是属于嵌入式产品,在嵌入式开发领域,嵌入式处理器、嵌入式操作系统、嵌入式系统集成开发环境一直是业界的热点,有必要对嵌入式开发作相应的研究与分析。本章内容的安排如下:首先对嵌入式开发进行分析与研究,接着深入分析系统设计的关键技术。2.1 嵌入式开发目前大部分NAS设备属于嵌入式设备,从20世纪90年代开始,随着现代信号处理、微电子技术和计算机网络技术的不断发展,嵌入式系统不断发展,并广泛应用到科学研究、工程设计、军事技术、商业文化以及人们生活的方方面面。所谓嵌入式系统,是指以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够满足实际应用中对功能、可靠性、成本、体积、功耗有严格要求的专业计算机系统。它一般由嵌入式微处理器、外围设备、嵌入式操作系统以及用户的应用程序等四个部分组成。2.1.1 嵌入式处理器和实时操作系统嵌入式处理器是嵌入式系统的核心,一般分为嵌入式微处理器和嵌入式微控制器两种。嵌入式微处理器的基础是计算机CPU,一般装配在专门设计的电路板上,只保留与嵌入式应用有关的母版功能,但是电路板上包括ROM、RAM、BUS等外设器件。目前嵌入式微处理器主要有Aml86/188、Power PC、MIPS、ARM系列等等。嵌入式微控制器又称单片机,它一般以某种微处理器为核心,芯片内部集成ROM/EPROM、EEPROM、FLASH、RAM、BUS等各种必要功能和外设。嵌入式操作系统它以有效的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,以便有效地利用这些资源为用户提供功能强大、使用方便和可拓展的工作环境,从而在计算机与用户之间建立接口。典型的嵌入式操作系统一般要求实时性和多任务性的特点,例如目前比较流行的实时操作系统有VxWorks,PalmOS,uc/OS-,WindowsCE,QNX,uCLinux、RTLinux,MontaVista Linux等。它们都经由传统Linux内核改造而成,能够得到自由软件社区丰富的资源,从而成为很好的实时解决方案。2.1.2 嵌入式交叉开发环境由于嵌入式系统自身的特殊性,不可能像开发PC软件那样在其上运行所有的开发工具,甚至有的嵌入式系统都没有显示设备,这就使得嵌入式开发采用一种特殊模式:主机-目标机这样的交叉环境进行开发。主机通常就是PC机或工作站,嵌入式实时开发环境就运行在主机之上,主机操作系统一般为Windows或者Linux,软硬件资源丰富。目标机就是嵌入式应用系统,它运行嵌入式实时系统,通过串口、以太网、仿真器或其它方式通信。其开发模型见图2.1。PC机嵌入式设备networkSerial图2.1 主机-目标机开发模型主机运行开发环境,用户所有开发工作都是在主机开发环境中进行,包括编译源代码、连接、下载和调试等。生成的可执行代码通过串行口或者以太网下载到目标机,在目标机执行时,可以把执行结果展现在开发主机上,主机也可以通过开发环境对代码进行调试。嵌入式应用软件开发中,目前大部分使用C语言作为开发工具。C语言作为一种高效通用的高级语言,大大提高了开发效率,缩短了产品开发时间。与一般的C语言编译器不用的是,嵌入式C语言编译器都是经过优化的,达到提高编译效率的作用。另外由于嵌入式处理器速度的提高和存储器空间的增长,面向对象的语言例如C+也作为开发工具。在线仿真是进行嵌入式系统调试最有效的工具。它首先通过实际执行,对应用程序进行原理性检验,以排除程序中存在的逻辑性错误。在线仿真器的另一大功能是在应用系统仿真时执行,发现和排除由于硬件干扰所引起的异常行为。此外,高级的在线仿真软件具有完善的跟踪定位功能,可以实时跟踪嵌入式系统的当前状态,以及应用系统对控制命令的响应等一系列动作,这对于开发调试是非常重要的。2.1.3 嵌入式Linux特点与目前众多的商业实时操作系统相比,嵌入式Linux拥有以下突出的特点:1、丰富开源代码嵌入式Linux的代码完全开放,便于学习、修改和系统裁剪,嵌入式系统的设计者可以对嵌入式Linux进行二次开发,保留需要的系统功能,并且可以根据实际需求修改系统代码,从而降低系统开销和能耗。2、开发成本低GPL(General Public License)协议源自嵌入式Linux,也是开放的源代码自由软件,只要支持GPL协议,Linux操作系统的源代码可以自由获得,另外大部分Linux使用的开发工具也遵守GPL协议,同样可免费使用。3、开源软件支持Linux系统提供了大量的应用软件,利用Linux丰富的软件支持,可以迅速构建嵌入式应用软件,极大地减少嵌入式系统软件开发的时间和费用。2.2 系统设计的关键技术2.2.1 视频存储策略本系统中的NAS设备承担接收和存储前端摄像机采集到的监控录像,并能够为后端用户提供视频检索、浏览等任务,因此不仅要求NAS设备的CPU具备较高的I/O速率以外,还要求在存储和读取视频数据的时候,使其硬盘读写性能能够最大化,即磁盘碎片最小化。因此必须择一种合适的存储策略。目前视频数据的物理存储都是通过文件系统的API来进行读写数据。因此大部分都采用预分配的方式来解决磁盘碎片的问题,这里分为两种预分配策略,即静态预分配策略和动态预分配策略。静态预分配策略是一种应用层的折中策略,就是在硬盘初始化的时候,按照需求指定好大小,每一个文件都分配连续的物理区域,当有存储需求时,从空文件池中申请可使用文件的大小,在写入数据的同时,数据库更新写入数据的信息。但是这种方式需要实现复杂的索引机制,相当于实现一个私有的文件系统,设计比较复杂。动态预分配策略相对于静态方式,主要是在文件系统层采用的一种策略,通过在现有文件系统上及时占用空间的方法,减少或者消除文件碎片,来提高硬盘读写性能。但是不同的文件系统对于采用这种方式效果差异很大,在本系统设计中分别对FAT32和EXT3两种文件系统进行了测试。测试结果显示EXT3在预防文件碎片上采取了一定的策略,一定程度上降低了磁盘碎片数量。这两种分配机制比较如表2.1。表2.1 两种分配机制比较 策略性能静态预分配动态预分配编程需要实现比较复杂的索引机制使用fwrite占用磁盘空间即可,编程模型只需很少改动效果完全不会产生磁盘碎片几乎不会产生磁盘碎片升级需要对现有录像的磁盘做格式化无需对现有录像的磁盘做任何更改。劣势由于文件大小固定,难以根据码流、定时事件等因素灵活分配文件单位,导致浪费磁盘空间需预留数个文件单位的剩余空间;预分配少许耗时由于本系统是基于NAS实现视频的存储和回放,如果采用传统静态预分配方案,文件的管理必须完全依赖于数据库索引机制,造成NAS的远程网络管理功能部分丧失,因此在本系统设计中,采用动态预分配方案,这样即可在一定程度上减少了磁盘碎片,也可兼容NAS的文件管理,可通过远程文件共享直接访问录像文件。2.2.2 流媒体技术本系统设计主要涉及网络视频流的传输,因此流媒体技术的应用也是本系统设计的关键技术。随着网络的发展,网络产生的信息形式多样,从网络上出现的第一张图片到现在各式各样的网络视频、三维动画,人们的听觉、视觉在网络上得到了很大的满足,视觉对于生动、清晰的媒体的观看,得益于流媒体技术。流媒体技术是一种新兴的网络传输技术,是互联网上实时顺序地传输音视频等多媒体内容的数据流的技术,它涉及到流媒体数据采集、音视频编解码、存储、传输、播放等技术内容。受网络带宽和视频文件大小的影响,接收视频流产生了两种方案,下载机制和视频流方式。采用下载机制,由于网络带宽的限制,下载一个音视频文件可能需要几分钟,甚至几小时,那么采用下载方式的时延也就很大,或者对于摄像机实时流的接收,下载机制根本无法应用。采用视频流方法,是指音视频数据有服务器向用户计算机连续、实时传输,用户只需利用几秒或者数十秒启动延时就可以观看,不需要像下载模式那样的方式等文件全部下完才能观看。下载机制和视频流方法普遍采用的流式传输是流媒体传输的关键技术。实现流式传输的方法有两种:实时流式传输(Real-time streaming transport)和顺序流式传输(progressive streaming transport)。实时流式传输总是实时传送,特别适合现场广播,也可支持随机访问,用户可快进或后退观看前面和后面的内容,该过程必须保证媒体信号带宽与网络连接匹配,以便传输的内容可被实时观看。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线内容,但是在给定时刻,用户只能观看已下载的部分,而不能跳到未下载的部分。由于标准HTTP服务器支持顺序流式传输,不需其他额外协议,所以顺序流式传输经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如广告、片头等;不适合长片段和有随机访问要求的情况,如演说、讲座等;也不支持现场广播,严格来说,它是一种点播技术。流式传输的实现需要合适的传输协议,由于传输控制协议(TCP)需要的网络开销较多,因此不太适合传输实时数据。在流式传输方案中,一般采用基于TCP的上层文本应用协议来传输控制信息,如超文本传输协议(HTTP)、实时流传输协议(RTSP),而实时传输数据用实时传输协议(RTP)/用户数据包协议(UDP)来传输实时数据,视频数据服务质量则有实时流传输控制协议(RTCP)来控制。流式传输的实现需要缓存技术,由于一个实时音视频源或存储的音视频文件在传输过程中被分解为许多数据包,而网络又是动态变化的,由于选择的是UDP传输视频数据,则每个包到达客户端的顺序可能不同,因此需要缓存系统来消除时延和抖动的影响,以保证数据包顺序正确,使得媒体数据能够连续输出。流式传输的一般过程如下:1、用户选择某一流媒体服务器后,使用基于TCP的文本协议来交换控制信息,以便把需要传输的实时数据从原始的数据中检索出来;2、客户端使用文本协议检索出取视频流的基本信息,包括目录信息、音视频数据的编码类型或音视频检索相关的服务器地址等;3、客户端和服务端允许实时流协议,交换控制信息,实时流协议提供播放、快进、快退、暂停及录制等命令方法。4、音视频服务器使用RTP/UDP,将音视频数据传输给客户端,客户端播放视频流。流媒体传输过程中需要的通信协议除了底层TCP/UDP协议以外,上层的协议主要包含视频数据传输协议RTP/RTCP、视频流控制协议RTSP/TCP或者HTTP/TCP,目前比较流行的流媒体协议栈如图2.2所示。图2.2 流媒体协议栈以下对流媒体传输协议作简单介绍。1、实时传输协议RTP(Real-Time Transport Protocol)RTP协议和RTCP协议是紧密联系的,RTP是针对Internet上多媒体数据流的一个传输协议,由IETF(Internet工程任务组)作为RFC1989发布,定义为一对一或者一对多传输情况下工作,其目的是提供时间信息和实现流同步,典型应用是建立在UDP之上,也可以在TCP、ATM等其他协议之上工作。虽然RTP本身保证了实时数据的传输,但是不能为顺序传送数据提供可靠的传送机制,也不能提供流量控制或拥塞控制,因此它需要RTCP提供这些服务来紧密配合RTP工作。威胁多媒体数据传输的一个尖锐问题是不可预料数据到达时间,但是流媒体需要的是实时的到达,能够完成播放和回放。RTP协议就提供了时间标签,序列号以及其他的结构用于控制适时数据的流放。发送端依照即时的采样在数据包里隐藏设置了的时间标签,接受端收到数据包后,依据时间标签恢复成原始的实时数据。RTP本身不负责同步,RTP只是传输层协议,为了简化传输层处理,提高该层的效率,将部分传输层协议功能(比如流量控制)上移到应用层完成。同步就属于应用层完成的。RTP没有传输层协议的完整功能,不提供任何机制来保证实时地传输数据,不支持资源预留,也不保证服务质量。RTP协议的数据报文和控制报文使用相邻的不同端口,大大的提高了协议的灵活性和简易性。2、实时传输控制协议RTCP(Real-Time Transport Control Protocol)RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据量、丢失的数据包的数据量等统计资料,这样服务器就可以利用这些资料来改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化。由前面所述,在传输视频流的时候,发送端会开放两个相邻的端口,一个给RTP、另一个给RTCP。由于RTP不提供可靠的传送机制,它依靠RTCP周期性的发送服务质量和交换会话用户信息等功能。用户可以根据反馈的信息指定调整流量策略。3、资源预订协议RSVP (Resorce Reservation Protocol)由于音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求之外,还需其他更多的条件。RSVP是Internet上的资源预订协议,使用RSVP预留部分网络资源(即带宽),能在一定程度上为流媒体的传输提供服务质量(QoS),在本系统设计当中不涉及到此协议。2.2.3 实时流媒体协议(RTSP)实时流协议(RTSP)是由Real network和Netscape共同提出的如何有效地的利用IP网络来传输声音或者影像的多媒体串流的应用层协议,允许同时多个串流需求控制,传输的通讯协议可自行选择,服务器端既可以是TCP也可以是UDP,语法与HTTP1.1类似,该协议用于C/S模型,是一个基于文本的协议,用于客户端和服务器端建立和协商控制实时的回话。该协议是一个应用层协议,主要控制实时数据的发送。实时流协议(RTSP)提供了一个可拓展的框架,使实时数据传输和点播成为可能。实时流协议(RTSP)特点:以下列举了RFC规范中的部分特点,更多特点参考文献2。1、可拓展性,新的方法和参数很容易加入到RTSP协议当中去;2、易解析,基于文本,可有标准的HTTP或者MIME解析器解析;3、安全性,使用网页安全机制;4、独立于传输,传输协议可根据需求任意选择;5、多服务器支持,每个流可放在不同的服务器上,客户端自动选择与不同的服务器建立并发的控制连接;6、记录设备控制,协议可控制记录和回放设备。RTSP控制命令:由于RTSP协议是工作在应用层,主要负责流媒体数据的控制,在实时流协议(RTSP)协议主要包含以下方法记号,便于控制。以下只列举基本部分方法,更多方法参考文献2。具体命令如下:1、DESCRIBE客户请求服务器,检查演示或媒体对象的描述,也允许使用接收头指定用户理解的描述格式,该方法由答复-相应组成实时流协议(RTSP)初始阶段。2、OPTIONS双向,可在任意时刻发出OPTIONS请求,例如打算尝试非标清请求,但不影响服务器状态。3、PAUSE客户端请求服务器,暂停(PAUSE)请求引起发送临时中断,该方法在设置(SETUP)消息中连接超时的参数所指定时段期间被暂停后,尽管服务器可能关闭连接并释放资源,但服务器资源会被预订。4、PLAY该命令告诉服务器以SETUP指定的机制开始发送数据。5、SETUP对URL的SETUP请求指定用于流媒体的传输机制。客户端对正播放的流发布一个SETUP请求,以改变服务器允许的传输参数。如不允许这样做,响应错误 为455 Method Not Valid In This State”。为了透过防火墙,客户端必须指明传输参数,即使对这些参数没有影响。RTSP一般交互过程:依据RTSP协议编写的客户端,任何一方发出请求,另一方必须给出响应,因此必须一个request对于一个response,标准、友好的交互过程如图2.3所示。流程图发出的OPTION请求,目的是询问服务端支持那些操作,OPTIONS、DESCRIBE、SETUP, TEARDOWN、PLAY,、PAUSE 、GET_PARAMETER等。如图所示,一般由客户端首先发出OPTION选项,就是让服务器告诉自己有那些方法可用,因此OPTIONS非必须选项;DESCIBE选项的请求为了获取服务端提供的媒体初始化描述信息,这个选项的数据,客户也可通过其他途径获得,如HTTP;因此也是可选选项,SETUP命令设置会话属性已经传输模式,提醒服务器建立会话。PLAY命令请求播放,服务端发送流媒体数据,客户端得到响应,开始接收流媒体数据,SETUP和PLAY命令为必须选项;TEARDOWN命令关闭会话,也可根据系统设计的需要决定是否使用。因此实际需求中并一定要采用标准的交互方式,可根据实际需求定制特定的交互。图2.3 RTSP一般交互过程2.2.4 ONVIF协议由于网络的发展触发了监控行业的变革,监控系统的网络化已经是不争的事实,这让很多人看到了这个行业的市场潜力,最明显的特征是网络安防产品厂商数量不断增多。某些厂商专注于做DVS(数字录像系统),有些厂商则可能专注于做平台等,然后通过各大集成商进行集成,最终提供给客户。这种产业合作模式很明显已经迫切的需要在该行业中提供越来越标准化的接口平台。为此,2008年5月,由安讯士联合博世及索尼公司三个公司携手宣布共同成立一个国际开放型网络视频产品标准网络接口开发论坛,并取名为ONVIF,而且以公开、开放的原则和方式共同制定开放性的行业标准。ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这种接口标准将确保不同厂商生产出的网络视频产品具有互通性。ONVIF标准主要为网络视频设备之间的信息交换定义通用协议,包括设备搜寻、实时视频、音频、元数据和控制信息等。目前ONVIF公开招收会员,论坛已接纳的会员将近40家。其中,高级会员有12家,除了那三家发起公司外,松下、三星、思科、西门子、TI等著名品牌位列其中,而国内的海康威视和浙江大华也成为了ONVIF论坛的高级会员。标准化无疑是净化市场的重要手段,可以很大程度上减少重复开发,提高产品可靠性。本系统设计中应用了ONVIF的部分协议。2.3 本章小结本章首先针对该系统运行的特殊环境,对嵌入式系统进行了分析和研究,接着对系统设计中需要应用的关键技术进行研究与分析,重点讨论的视频存储的策略及流媒体传输的技术,在分析与研究流媒体传输技术时,对RTSP实时流控制协议进行了详细的分析与研究,还对系统需要应用ONVIF协议作了简要分析。 第三章 需求分析与系统总体设计系统的总体设计离不开对需要实现的系统进行需求分析,并对系统需要达到的目标进行初步制定,为系统的具体实现打下基础。本章节则首先对系统进行需求分析和制定系统的设计目标,然后进行系统的总体设计以及分析各个模块之间的关系。3.1 需求分析视频监控行业对于存储的性能有明确的指标,除了磁盘读写速度、空间利用率、数据的安全性和稳定性等量化指标外,还有回放的录像检索效率、播放控制等。具体来说,对于视频存储和回放功能和性能的需求包括如下:1、可靠存储视频存储和回放是基于NAS存储设备,依赖于NAS的存储性能。主要包括数据存储与备份能力,NAS使用的是专业CPU,数据转换存储较快,在数据存储大而且频繁的情况下,NAS的数据处理能力更加凸显;数据安全性上主要考虑容灾性。对于NAS,采用RAID技术,大大提高了存储数据的安全性。2、存储策略监控系统因为行业的特殊性,会对磁盘频繁读写,读写伴随的问题就是磁盘碎片,磁盘碎片变多以后,会造成系统读写性能急剧恶化,因此选择好的磁盘存储策略非常重要。3、视频连接作为应用在NAS设备上的视频存储和回放,自然需要具备自动或者收到配置网络摄像机,使系统能够根据配置信息获取视频流。4、视频浏览视频监控中的网络存储可依赖于NAS系统通过网络共享的方式查看录像,但是支持回放系统,必须设计私有协议,或者兼容方式能够被平台客户端软件进行视频检索,并能够查找和播放视频。5、网络传输在网络传输中,网络带宽是非常有限的资源,传统的下载方式不适合监控行业的需求,客户必须点开视频文件,才能够播放视频,因此必须采用流媒体传输技术实现视频流的传输。6、远程管理该系统除了可以通过NAS远程管理以外,可以通过定制的客户端软件进行录像管理,能够进行远程摄像机连接参数配置。3.2 系统设计目标针对本系统的实际需求,拟定了一个基于NAS的视频存储和回放系统设计方案。系统设计指标如下:1、实现对支持ONVIF(开放型网络视频接口论坛)协议的摄像机自动连接和手动配置;2、实现H.264编码视频流的实时存储;3、实现视频流回放的服务端,该服务器支持视频资源查找,视频点播;4、能够完成需要连接摄像机的网页配置功能。要达到上述功能,必须对系统软件结构进行合理设计,需要对本系统涉及的关键技术进行深入研究。3.3 软件系统总体设计上一节对嵌入式开发的介绍中,已经选用linux系统作为操作系统,因此在决定在选用NAS设备时,运行Linux操作的NAS设备是首选。整个系统分为以下几个模块:摄像机接入模块、视频存储模块、视频流回放、摄像机配置模块。系统总体架构见图3.1。图3.1 系统总体架构图1、摄像机配置模块摄像机配置模块负责完成摄像机的自动查找,并且通过网页,用户可以配置摄像机连接需要的基本信息。2、视频存储模块摄像机存储模块负责将接入的网络摄像机流按照自定义存储策略存储到NAS存储设备上,并且将存储的视频文件的基本信息存入数据库,在提供数据库查询接口,为用户能够按照需求检索感兴趣的视频,为用户点播指定视频提供服务。3、视频回放模块视频回放模块负责视频文件的回放服务,用户可根据视频存储模块检索出的视频基本信息,找到感兴趣的视频,请求视频回放服务,包含快进、快退、下载等服务。4、摄像机连接模块摄像机连接模块负责从配置文件读取需要录像的摄像机连接需要的基本信息,完成摄像机视频流的获取,根据配置文件获取到的摄像机ip地址和端口号,以及用户名和密码,因为网络摄像机一般需要安全认证。系统处理流程:系统启动以后,首先搜索网络中支持ONVIF协议的网络摄像机,并将其记录在配置文件中,摄像机连接模块扫描配置文件,查询是否有要求连接的摄像机,符合要求的摄像机可通过网页进行配置,每次完成配置,摄像机接入模块重新扫描需要接入的摄像机,到扫描完以后,根据配置接入需要接入的摄像机,为每一路摄像机开辟一个线程去进行收流任务,收到视频流以后利用存储模块进行视频存储,不断更新视频流文件的数据库信息,开启视频流回放服务器,等待用户视频流的请求。3.4 本章小结该章节首先对系统进行必要的需求分析,制定好系统设计的基本目标,然后对分别对应用系统软件的总体结构、各个模块的主要任务、系统任务处理的一般流程进行分析。 第四章 系统实现(第一部分)为了能够让摄像机连接模块通过读取本模块设计的配置文件完成摄像机的连接工作。摄像机连接工作需要获取包含网络摄像机的IP和端口以及用户名和密码,进而能够自动连接到摄像机,然后进行收流任务,因此该章分析和描述了支持ONVIF协议的摄像机的自动发现以及通过网页的方式进行网络摄像机额外需要信息的配置工作。数据存储其主要职责是将接收的视频流数据通过文件系统API存入硬盘,并能够提供检索机制,让客户能够检索到需要点播的视频。由于视频存储涉及到大量数据的硬盘操作,是影响系统性能的关键,因此采用一个好的存储方案是至关重要的,该章节又针对监控行业存储的特殊性并基于EXT4文件系统,采用动态存储方案进行了存储系统的设计实现,并在实际应用中采用了该设计实现方案。4.1 摄像机自动发现摄像机连接基本是直接通过在配置文件中读取网络摄像机连接需要的配置信息进行摄像机连接,摄像机种类多样,为了做到普遍的通用性,系统该模块的设计首先通过目前网络摄像机普遍已经兼容或者准备兼容ONVIF协议的摄像机进行自动发现,首先完成网络摄像机的网络地址的发现工作,然后可通过网页配置的方式进行摄像机登录的用户名、密码、摄像机类型等的配置工作,最终可引导系统完成摄像机连接任务。摄像机自动发现具体实现的流程图如图4.1所示。图4.1 设备发现流程图具体分析描述大致分为四步:1、建立TCP协议的SOCKET,依据ONVIF协议中规定的设备发现协议标准将端口绑定为3702。2、加入到多播组50,使用setsocket设置SO_REUSEADDR和IP_ADD_MEMBERSHIP,设置IP_ADD_MEMBERSHIP的时候需要传入struct ip_mreq,该结构体包含两个成员,imr_multiaddr和imr_interface,imr_multiaddr的地址设为50,imr_interface的地址设置为本地IP。3、发送搜索报文,根据网络服务-发现服务(ws-discovery)的规定,发送的报文格式如下:注:转下页注:接上页uuid:%surn:schemas-xmlsoap-org:ws:2005:04:discovery/ws/2005/04/discovery/Probedn:NetworkVideoTransmitter标签中需要填写的值包括:MessageID中的值uuid,可通过底层MAC获得;Action规定方法为Probe;To指定了一个匿名的地址;Types标签指定了搜索的服务范围。4、解析响应的值,每次搜索完成需要比较ini已经存在的摄像机IP地址,只保存未配置的摄像机。解析包含NetworkVideoTransmitter的消息响应字符串,然后解析XAddrs,保存url,例如07:8080/onvif/ device_service,将IP地址和端口号保存到ini文件中,并更新摄像机总数。4.2 网页配置功能摄像机自

温馨提示

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

评论

0/150

提交评论