基于互联网的视频监控管理系统的设计与实现毕业论文
2020-03-23 09:50:15
摘 要
随着科技的极速发展,人们对信息量以及信息形式的要求也逐渐提高,不再是少量的文本形式的信息通信,而是海量的视频和音频信息传递。视频流传递技术也飞速发展,如今很火的直播行业便是视频流传递技术的鲜活的体现。同样的,视频监控技术也如此,安全稳定智能都逐渐成为其基本要求。
本文是基于Google公司开发的软件Android Studio完成Android端软件开发,作为视频监控服务端,再通过同一个局域网下的设备捕捉这次视频流传递,其中运用到了RTSP协议。这里发出视频流请求的是PC端的VCL,本文会对这整套系统原理和实现过程进行详尽介绍。
论文主要研究了Android Studio的视频RTSP Server和HTTP Server的建立,以及VCL的客户端的连接。
关键词:Android;RTSP;VCL
Abstract
With the rapid development of science and technology, people's requirements for the amount of information and information forms are also gradually raised, no longer a small number of text forms of information communication, but a massive amount of video and audio information transmission. Video streaming technology has also developed rapidly, and the popular direct broadcast industry is the embodiment of video streaming technology. Similarly, video surveillance technology is the same, security, stability and intelligence are gradually becoming its basic requirements.
This paper is based on the software Android Studio developed by Google Company to complete the development of Android software. As a video surveillance server, it captures the video stream transfer through the same LAN device, and applies it to the RTSP protocol. The video stream request is sent by the PC VCL. this paper will introduce the whole system principle and implementation process in detail.
This paper mainly studies the establishment of video RTSP Server and HTTP Server of Android Studio, as well as the connection of VCL client.
Key Words:Android;RTSP;VCL
目 录
第1章 绪论 1
1.1 研究背景 1
1.2 研究目的与意义 1
1.3 论文结构与内容 1
第2章 理论知识介绍 3
2.1 流媒体基本介绍 3
2.1.1 流媒体传输方式 3
2.1.2 流媒体传输过程 4
2.2 流媒体相关网络协议 5
2.2.1 承载数据的RTP 5
2.2.2 检验传输的RTCP 5
2.2.3 控制会话的RTSP 5
2.3 H.264编码技术 8
2.3.1 H.264/AVC标准 8
2.3.2 H.264/AVC的运作过程 9
第3章 开发环境介绍 11
3.1 Android Studio介绍 11
3.2 VCL介绍 11
3.2.1 VCL简介 11
3.2.2 VCL特点 12
3.2.3 VCL框架分析 12
第4章 系统的建立 17
4.1 视频传输流程 17
4.1.1 采集 17
4.1.2 处理 17
4.1.3 编码和封装 18
4.1.4 推流到服务器 18
4.1.5 服务器流分发 18
4.1.6 播放器流播放 18
4.2 系统构成 19
4.3 服务端的建立 19
4.3.1 服务端的代码分析 19
4.3.2 服务端的原理分析 21
第5章 测试与分析 25
5.1 环境配置 25
5.2 服务器的建立 25
5.3 客户端发送请求 26
5.4 连接成功并请求端播放 28
第6章 总结与展望 29
参考文献 30
致 谢 31
第1章 绪论
现如今直播行业火热,这与视频流传递技术的发展脱不开关系。视频监控技术也是视频流的传递,但更注重安全稳定以及智能化。安全性就是靠此监控系统的秘钥以及防火墙的建立,稳定便是对网络线路的要求和保护。本文更多注重的是视频流传递的过程。
1.1 研究背景
智能移动端和3G/4G网络甚至马上要孕育而生的5G网络的快速推进了视频这一媒介信息的传递,为其提供了很好的终端和传递通道。智能手机以及其它智能移动终端都会有像素极佳的摄像头,随时随地的记录照片、视频、音频等信息,再借助着4G网络的高速传递,这些海量的信息都可以随心所欲的输入输出,明显提高了人们的对信息量的追求和要求。大量信息量的传递孕育出了很多新行业,比如火热的直播行业,只需摄像头和话筒每个人都可以成为主播。这都得益于视频流传递技术的不断完善和突破[1]。
近几年的智能终端也是飞速发展,手机越来越智能,其中最多被使用的是Android手机,因为其拥有开源系统和开源软件开发市场,还有强大的开发环境,比如Eclipse和Android Studio。得益于以上几点,Android手机拥有方便,快捷,实用,美观以及系统更新快的优点,是如今最多的使用终端系统。
1.2 研究目的与意义
结合研究背景中的几点,智能移动终端尤其是Android系统的终端的高速发展、4G/5G网络的网速支持、人们逐步对视频音频信息的高要求,视频流媒体技术的传递已然成为必须解决的问题和攻克的关卡,还有后期的完善。本篇论文是对视频监控系统的原理研究以及实现,是完成对视频流媒体在同一局域网下传递和接收。
完成视频监控系统,可以实现不再同一地点,但可以实时对其实行监控观察,只需有局域网的连接,这就很大程度的扩大了视野。就不需要价格昂贵性价比低的专用监控摄像头,只需终端上的小摄像头便可以完成视频录制,再通过网络协议以及网络连接进行传输。这很大程度又减小了成本,并且更加灵活,终端可以移动,这是一般监控摄像头不具备的。缺点是没有专业摄像头稳定和无法保证视频高质量,并且很依赖局域网的网速,需要很好的局域网连接。流媒体视频系统的建立对当下的视频服务器开发市场有着不小的影响,对其的学习有着不小的研究意义和商业价值[2]。
1.3 论文结构与内容
论文结构如下图1.1所示,可以从四个方面来理解,从先开始问题的提出到之后对于问题的逐步分析,想到了解决问题的方法,最终完成对这个问题的总结。
图1.1 论文结构图
第1章,绪论。主要介绍了本课题的研究背景,信息时代推进视频技术的发展;强调研究目的与意义,4G网络时代和Android系统终端的支持,使然其可做性,最后介绍论文架构。
第2章,理论知识介绍。主要介绍流媒体相关概念及基本原理,和相关网络协议;再一个就是H.264/AVC编码算法的详细介绍。
第3章,开发环境介绍。简述了Android Studio开发环境和VCL软件的性质和特点,具体有Android Studio软件的结构组成和VCL的特点,以及VCL的框架结构。
第4章,系统的建立。将视频传输过程分析到位,并对每一步的选取项目进行列举,最终根据实际情况选取方案,最终实现对系统的建立,最后还大篇幅的介绍了Android服务端代码分析和原理分析。
第5章,测试与分析。演示了如何通过服务端和VCL在同一局域网下完成视频音频流的传递,并贴上了效果展示图。
第6章,总结与展望。对整篇论文进行规整和总结,还对论文和项目完成中需要改善的地方提了出来,也提出来一些可以运用到其他领域的想法。
第2章 理论知识介绍
本章介绍流媒体技术,包括其概念、特点、基本原理等。其次,介绍流媒体传输方式,包括其网络流媒体传输的协议结构和视频流传输过程。最后介绍H.264编解码算法。
2.1 流媒体基本介绍
流媒体中的流广义上是使流媒体形式稳定并且持续传输流和转播流的系统技术、方案和协议的统称,通常称为流媒体系统;狭义上的流则为相对于经典下载-转播方式而言的一种媒体类型,其能从互联网上取得音频和视频等连续的多媒体流,客户实时接收,时延也得到大幅度削减[3]。
旧时的下载方式在流方式面前显得弱小许多,流式传输相比下载方式有3个优点:一是可减短启动期间出现的延时,并减少了缓存容量的内存大小;二是可以解决实时流媒体数据传输的问题,完成现场直播的功能,这是下载方式望尘莫及的,三是还可以帮助多媒体数据保护其知识产权。
基于流媒体的网络传输技术包括了多种技术,包括媒体压缩和网络传输,还包括流媒体的编码、发布、传输、解码、播放等多个环节,这些技术和环节中还存在着其他技术问题需要着重解决[4],包括:媒体数据这里强调视频数据需要经过高效的压缩算法、流式信息处理和打包编排工作后才能适应于流式传递;合适的传输协议满足各式各样的流媒体传输,业界目前为止主要使用的实时流媒体协议有UDP、RTP、RTSP、RTCP等;媒体的传输方式有单播、组播和广播等多种形式,根据不同特点按不同等级的需求来选择。
2.1.1 流媒体传输方式
随着网络中流媒体的信息增加,比如音频、视频、照片、GIF图等形式,HTTP因为其缺点变得不堪重用,实时性差和带宽消耗高就是它的缺点。于是,孕育出了多媒体信息的RTP,同为应用层协议,不同的是RTP对应的是用户数据报协议而HTTP对应的则是传输控制协议。RTP/UDP协议可以提升视频流的传输速率,对视频流有更好的控制能力,同样会出现很多缺陷,比如缺少差错控制装置,无法解决丢帧和堵塞等问题,另外需要一个视频服务器,与诸多操作系统下的防火墙不兼容等多种问题。近几年TCP的传输型能随着网络技术发展大大提高,所以又开始基于HTTP/TCP的传输架构。如下图2.1是网络流媒体传输的协议结构:
图2.1 网络流媒体传输的协议结构
2.1.2 流媒体传输过程
在IP网络中,最基本的流媒体传输过程如图2.2:
图2.2 视频流传输过程
此类系统通常采用客户端/服务端传输模式,包括客户端、传输网络和服务端三部分。单个服务器通过网络的传输可以和众多客户端进行连接,视频数据一般为压缩视频数据方式存储和传输的,这样为了减少存储占用空间以及提高传输效率。原始视频数据被压缩编码后,经过服务器进行实时打包、流化后的操作后,传播至网络,再通过网络传到客户端的缓存中进行存储和演示。流文件与通常的压缩文件不一样,为了满足能够在网络上边下载边播放的要求,流媒体数据必须经过一定的处理,就是将其拆散、打包,然后附加信息,这些信息一般是关于计时、压缩和版权的[5]。
流媒体系统中的关键技术是支撑流媒体系统正常运转的支柱,五个基本技术有:压缩编码技术、媒体数据的流化和打包技术、流媒体服务器技术、网络协议和通信控制技术、客户端媒体播放器技术。
2.2 流媒体相关网络协议
实时流媒体相关的网络协议有多种,比如RTP、RTCP、RTSP、RTVP、SDP等许多类型。下面只介绍RTP、RTCP,并对RTSP进行详细介绍。
2.2.1 承载数据的RTP
实时传输协议(RTP),英文全拼是Real-time Transport Protocol。该协议是用于承载媒体数据的,即实际传输媒体数据的协议,并提供实时媒体数据端到端交互的传输服务,如多点视频会议、远程视频监控以及音频和视频直播等。RTP是由因特网工程任务组(IETF)的音频和视频传输工作组设计发明的,1996年推出后得到广泛使用,同时也成为ITU-T的H.225.0建议。流媒体系统在传输层使用UDP承载RTP的数据包,从而加大了单位时间内媒体数据传输的吞吐量并改善了其实时性。当网络发生堵塞时,RTP会出现掉包丢帧的情况,服务器会根据媒体编码的特性,自动抉择出重要的数据包进行重传,而且会丢弃一些不重要的数据;并且客户端会跳过未按时完成传输任务的数据,但与此同时不停播放,这样使得流媒体播放起来更顺畅。客户端一般会留下一块区域用来缓存视频在解码后的少量参考帧数据,这样使得实时播放延时大幅度地减小[6]。
2.2.2 检验传输的RTCP
实时传输控制协议(RTCP),英文全拼是Real-time Transport Control Protocol。该协议的功能有服务质量反馈,如丢失过的包数目、往返延时、抖动等,这样服务端会结合这些反馈消息对数据率进行调整;会话控制是使用RTCP的终止标识(BYE)来分组,用来提醒组员们这一会话的结束;标识,其中含有参与者的名字、E-mail地址及邮编号码等个人信息;媒体间同步,使得传输的过程中音频和视频流进行同步独立,方便数据管理并使得用户体验变好。RTCP通常是与RTP一起共同作用的,即RTCP是RTP不可分割的一部分。RTP缺少为数据包按排序传输的能力,也无法解决流量控制和堵塞控制的问题。这要靠RTCP和RTP共同合作,其可以对需要传输的数据包提供按序的可靠传送机制,并对网络流量堵塞进行控制[7]。
2.2.3 控制会话的RTSP
实时流传输协议(RTSP),英文全拼是Real Time Streaming Protocol。该协议是一个基于本文的协议,以客户机/服务器方式工作。其在客户端和服务器两端之间设立和商讨实时通信中,主要的作用是完成对实时性数据传送的控制,在播放来自互联网的实时数据时能够采取管理和控制,比如Pause、Continue、Back、Forward等,可以完成对流媒体数据的远程控制。RTSP是由国外著名的Real Networks、Netscape等公司共同设计发明,1996年正式成为因特网协议。是一款应用层协议,运作在TCP或UDP的上层,其作用在于控制RTP/RTCP实时流媒体数据的交互,但其本身并不传输媒体数据。按照传统电信传输概念,RTSP又被称为带外协议,因为其数据不属于主流媒体数据的带宽,而传输流媒体使用的RTP则是带内协议,其数据属于主流媒体数据的带宽[8]。
要体现RTSP的控制功能,需要协议和支持RTSP协议的媒体服务器和媒体播放器。RTSP能够完成媒体数据提供在播放时的控制操作,也用来定义控制消息、运作方式、状态码等,另外还用来记录与RTP协议间的交互日志,主要有三种操作:查找媒体、邀请加入以及添加媒体。查找媒体就是给予用户HTTP协议或其他方法的权限,从而主动给予服务器一份报文用来描述。如果报文是组播形式的,则说明报文中含有媒体流对应的组播端口号和地址,反之报文若是单播形式的,为了防止泄密报文中只透露目的地址信息。这样,客户端便能向服务器提出建立会话的请求。邀请端加入是能够邀请服务器参加正在运行的交互,有时是在提交的报文中记录了媒体资料,有时是在报文中回放会话期间的媒体或其子集。这一功能十分切合于在网络现场教学、多点视频会议等运用领域的使用。添加媒体则是向已然就绪的描述中加入媒体。后来添加的媒体转化为可用时,客户端和服务器要完成期间的信息交互[9]。
RTSP请求能用多种不同方法连接来完成传输,大体分为3大种。包括持续连接传输、单个传输连接以及无连接。前者是用于多个请求/响应传输模式下;单个传输连接方式则是运用于每个请求/响应模式下;后者无意义。RTSP、URL协议决定了传输连接的类型。RTSP给予媒体服务器权限,专门用来向用户端发送请求,但这种方式仅在持续连接的时候才能实现,否则媒体服务器难以到达用户端。
RTSP的报文有两种类型,分别是客户端向服务器发送用的请求报文和服务器向客户端反馈用的信息报文。前文提到过RTSP是基于文本的协议,正因为这个特点,才会产生由ASCII码组成的报文。易得其长度均无法确定,而且语句行的末尾均为回车换行。RTSP报文的组成部分有三大板块:起始行、头部行以及实体[10]。
RTSP请求报文:起始行代表请求行,其具体结构如下图2.3所示:
图2.3 RTSP请求报文的结构
RTSP请求报文的方法有很多种,这些方法的作用如下表2.1所示:
表2.1 RTSP请求报文的常用方法和作用
方法 | 作用 |
OPTIONS | 客户端获得服务器提供的可用方法 |
DESCRIBE | 客户端得到会话描述信息 |
SETUP | 客户端提醒服务器会话建立,确认传输模式 |
TEARDOWN | 客户端发起关闭请求 |
PLAY | 客户端发送播放请求 |
RTSP响应报文:注意与请求报文不同的是其起始行不再是请求行而是状态行,其结构如下图2.4所示:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: