版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、- PAGE I -大连理工大学毕业设计(论文)格式规范- PAGE II -摘 要随着网络通信技术和视频编解码技术的不断进步,视频监控系统也不断发展。目前,第三代视频监控技术即网络视频监控技术已经占据市场主流,人们对移动视频监控系统的市场需求也在日益扩大。与此同时,安卓智能手机市场飞速发展,安卓手机更新换代速率由以前的一年一代到如今的半年一代甚至三个月一代。移动设备的性能已经完全可以满足视频监控的硬件要求,而已经广泛应用的第四代移动通信技术和无线局域网技术完全可以满足传输高清网络视频的要求。因此,开发一个基于安卓手机的移动视频监控系统完全可行。本文研究了基于安卓系统的视频监控实现所需要的技术
2、,包括视频编解码技术,视频传输技术,流媒体播放,安卓界面设计等相关知识。本监控系统包括视频采集端和视频播放端。视频采集端利用安卓手机的相机作为网络摄像头,实时采集监控数据,视频采集端采用MPEG编码技术对采集的图片进行编解码,并采用HTTP技术传输视频流。安卓客户端利用了基于VLC流媒体库的播放技术,可以远程实时播放摄像头监控的视频。经过在一加手机和华为手机上测试,本视频监控软件具有良好的表现,性能和清晰度均达到设计要求,能够很好的实现视频监控功能。关键词:视频监控;安卓系统;MPEG;HTTP基于安卓的移动视频监控系统的设计与实现- PAGE V -Design and implementa
3、tion of mobile video monitor system based on AndroidAbstract With the network communication technology and video codec technology continues to progress, video monitor system is also evolving. At present, the third generation of video monitor technology has occupied the mainstream market, people dema
4、nd on the mobile video monitor system market is also expanding. At the same time, Android smart phone market, the rapid development of Android mobile phone replacement rate from the previous generation to todays semi-annual generation or even three months generation. Mobile device performance has be
5、en fully meet the hardware requirements of video monitor, and the fourth generation of mobile communication technology and wireless network technology meet the requirements of high-definition video transmission. Therefore, the development of a mobile phone based on android mobile video monitor syste
6、m is feasible.This article has studied the technology needed for Android video monitor implementation, including Android interface design language, video codec technology, video transmission technology, streaming media playback and other related knowledge.The monitoring system includes video capture
7、 and video playback. Video acquisition using Android mobile phone camera as a web camera, real-time acquisition of monitoring data, video acquisition using MPEG encoding technology to capture the image encoding and decoding, and the use of HTTP technology to transmit video streams. Video player uses
8、 a VLC streaming library based on the playback technology, you can remotely play the camera real-time video recording.By testing on mobile phone, the video monitor software has a good performance, performance and clarity are designed to meet the requirements, it can be a very good video monitor func
9、tion.Keywords: Video Monitor; Android System; MPEG; HTTP目 录 TOC o 1-3 h z u HYPERLINK l _Toc484687079 摘 要 PAGEREF _Toc484687079 h I HYPERLINK l _Toc484687080 Abstract PAGEREF _Toc484687080 h II HYPERLINK l _Toc484687081 绪 论 PAGEREF _Toc484687081 h 1 HYPERLINK l _Toc484687082 1.1 课题来源 PAGEREF _Toc484
10、687082 h 1 HYPERLINK l _Toc484687083 1.2 国内外研究状况 PAGEREF _Toc484687083 h 2 HYPERLINK l _Toc484687084 1.3 项目目标 PAGEREF _Toc484687084 h 4 HYPERLINK l _Toc484687085 1.4 本章小结 PAGEREF _Toc484687085 h 4 HYPERLINK l _Toc484687086 2 开发环境和相关技术介绍 PAGEREF _Toc484687086 h 5 HYPERLINK l _Toc484687087 2.1 开发环境 PA
11、GEREF _Toc484687087 h 5 HYPERLINK l _Toc484687088 2.2 编程语言 PAGEREF _Toc484687088 h 5 HYPERLINK l _Toc484687089 2.3 关键技术 PAGEREF _Toc484687089 h 6 HYPERLINK l _Toc484687090 2.3.1 HTTP技术 PAGEREF _Toc484687090 h 6 HYPERLINK l _Toc484687091 2.3.2 Surfaceview PAGEREF _Toc484687091 h 6 HYPERLINK l _Toc484
12、687092 2.3.3 Java多线程 PAGEREF _Toc484687092 h 7 HYPERLINK l _Toc484687093 2.4 本章小结 PAGEREF _Toc484687093 h 7 HYPERLINK l _Toc484687094 3 需求分析和系统设计 PAGEREF _Toc484687094 h 8 HYPERLINK l _Toc484687095 3.1 可行性研究 PAGEREF _Toc484687095 h 8 HYPERLINK l _Toc484687096 3.2 系统总体设计 PAGEREF _Toc484687096 h 8 HYP
13、ERLINK l _Toc484687097 3.3 系统界面需求和设计 PAGEREF _Toc484687097 h 10 HYPERLINK l _Toc484687098 3.4 系统功能需求和设计 PAGEREF _Toc484687098 h 13 HYPERLINK l _Toc484687099 3.5 算法选择 PAGEREF _Toc484687099 h 13 HYPERLINK l _Toc484687100 3.6 本章小结 PAGEREF _Toc484687100 h 13 HYPERLINK l _Toc484687101 4 系统实现 PAGEREF _Toc
14、484687101 h 14 HYPERLINK l _Toc484687102 4.1 界面实现 PAGEREF _Toc484687102 h 14 HYPERLINK l _Toc484687103 4.1.1 采集端界面模块实现 PAGEREF _Toc484687103 h 14 HYPERLINK l _Toc484687104 4.1.2 安卓端界面模块实现 PAGEREF _Toc484687104 h 16 HYPERLINK l _Toc484687105 4.2 系统功能实现 PAGEREF _Toc484687105 h 18 HYPERLINK l _Toc48468
15、7106 4.2.1 采集端预览模块实现 PAGEREF _Toc484687106 h 18 HYPERLINK l _Toc484687107 4.2.2 安卓端播放模块实现 PAGEREF _Toc484687107 h 21 HYPERLINK l _Toc484687108 4.2.3 PC端实现 PAGEREF _Toc484687108 h 22 HYPERLINK l _Toc484687109 4.3 系统实现结果和分析 PAGEREF _Toc484687109 h 23 HYPERLINK l _Toc484687110 4.4 本章小结 PAGEREF _Toc4846
16、87110 h 27 HYPERLINK l _Toc484687111 5 系统测试 PAGEREF _Toc484687111 h 28 HYPERLINK l _Toc484687112 5.1 界面和功能测试 PAGEREF _Toc484687112 h 28 HYPERLINK l _Toc484687113 5.1.1 采集端主界面测试 PAGEREF _Toc484687113 h 28 HYPERLINK l _Toc484687114 5.1.2 采集端设置界面测试 PAGEREF _Toc484687114 h 28 HYPERLINK l _Toc484687115 5
17、.1.3 安卓端界面测试 PAGEREF _Toc484687115 h 29 HYPERLINK l _Toc484687116 5.1.4 安卓端功能测试 PAGEREF _Toc484687116 h 29 HYPERLINK l _Toc484687117 5.1.5 PC端测试 PAGEREF _Toc484687117 h 30 HYPERLINK l _Toc484687118 5.2 系统性能测试 PAGEREF _Toc484687118 h 30 HYPERLINK l _Toc484687119 5.3 本章小结 PAGEREF _Toc484687119 h 32 HY
18、PERLINK l _Toc484687120 结 论 PAGEREF _Toc484687120 h 33 HYPERLINK l _Toc484687121 参 考 文 献 PAGEREF _Toc484687121 h 34 HYPERLINK l _Toc484687122 致 谢 PAGEREF _Toc484687122 h 35基于安卓的移动视频监控系统的设计与实现 PAGE 46大连理工大学毕业设计(论文)格式规范 PAGE 2绪 论1.1 课题来源说起视频监控,很多人的第一印象仍然是固定的前端摄像头和笨重的后端监视器。其实不然,近些年来,随着移动通信技术的飞速发展,视频监控网
19、络化不断加快,基于互联网传输的移动视频监控技术正逐渐兴起。只要有网络的地方,我们就可以通过移动终端,查看监控画面,观看监控视频1。并且人们可以根据自己的需要添加报警装置,可以在电脑终端进行报警布防设置,一旦发现异常情况,网络移动终端可接到报警提醒,而且手机,平板摄像头的可移动性大大增加了安装监控系统的便利,也提高了监控系统的灵活性。手机,平板等移动终端真正的成为了我们的安全监视中心。随着人们对移动监控需求的不断增大,移动视频监控的应用场景也越来越丰富。家居视频监控和视频直播是移动监控的典型应用。家居视频监控的发展是随着整个视频监控市场的不断进步而发展的。在视频监控发展初期,网络技术还很不发达,
20、用户无法远程观看监控视频,只能在本地查看监控视频,当时主要的家居应用有:监视家庭保姆的工作情况;或者用户不放心小孩,老人一个人在家里,通过视频监控,照看老人或小孩。这个阶段的视频家居应用还很少,视频监控系统也多以模拟监控系统居多。基本配置为前端模拟摄像头和后端监视器,如果有录制监控视频的需求,还需要硬盘录像机。这个阶段家居视频监控的市场需求也很小,普通人几乎很少使用。后来伴随着网络通信技术的不断进步,家居监控也有了一定的发展,很多用户通过电脑的浏览器端或软件客户端来监视家里的情况,基于网络传输的远程视频监控系统开始兴起。但是由于受到网络费用,网络带宽和观看条件等因素限制,一般家庭使用还是少数。
21、在这个家居视频监控阶段,一路监控视频大约需要256K的带宽,而且低带宽环境下的视频编解码技术也不成熟,应用到监控系统中的效果也不理想。现阶段,家居视频监控可以通过第四代移动通信技术或者无线局域网技术来实时监控家里的状况。家居视频监控的功能比以前也有了长足的进步。从初期的简单观看监视视频,到现在的报警,对讲,甚至双向视频,家居监控系统已经进入到我们每一个人的生活中。随着智能家居行业的兴起,家居智能监控的发展也越来越重要。 视频直播是移动视频监控的另一个应用场景。视频直播是指利用互联网及流媒体技术进行直播,视频因融合了图像、文字等丰富元素,声形并茂,效果极佳,逐渐成为互联网的主流表达方式。视频直播
22、的实现方式:当视频主播发出直播请求后,服务器根据直播信息,将直播频道的播放地址返回给观众,观众访问播放地址即可观看视频直播。直播业务一般采用组播实现,而不是单播或者广播。因为IP组播群组成员的关系是动态的,用户主机可以随时加入或者推出IP群组。同单播和广播相比较而言,组播的效率是最高的,因为任何给定的链路最多使用一次,可以节省网络资源和网络带宽,降低成本。相对于传统的媒体而言,视频直播具有得天独厚的优势。视频直播的快捷性:随着网络的不断普及,人们对移动终端如手机,平板的使用越来越多。在无线通信技术如此发达的今天,这些便携式设备完全能够满足流媒体播放的硬件要求。而很多大事件的直播都是转瞬即逝的,
23、即使时候可能会有相关的回放和介绍,但是观看直播的体验却是失不再来的。网络直播则很好的解决了这一个问题,只要有一台可以接入互联网的移动终端设备,你就可以看到你想看到的一切。视频直播的互动性:视频直播不仅可以让用户完整的看到事情发生的过程,让观众与直播现场更近一步,观众还可以通过论坛或者弹幕等形式发表自己的看法,与其他的观众一起交流讨论。这样直观方便的交流互动是传统媒体无法做到的。视频直播的灵活性:传统的电视节目播出时受到了线性传播的限制,用户无法选择自己想观看的节目,用户没有自主选择的权利。网络视频直播则很好地解决了这个问题。在视频直播结束后,视频被保存在相关的直播平台上,观众如果错过了直播观看
24、,依然可以在任何时间,通过网络平台对录制的视频进行点播,这样的观看更加灵活,更加贴近受众。 现如今,随着互联网,大数据,物联网等技术的发展,移动视频监控也处于爆发式增长的阶段2。除了传统的安防企业,互联网企业,甚至家居企业,IT通信企业都加入到其中,移动视频监控的应用空间越来越广,发展前景也越来越明朗。 1.2 国内外研究状况通常来说:视频监控系统的发展经历了三个阶段,分别是模拟监控时代,数字监控时代和网络视频监控时代。视频监控技术经过了多年的发展,视频监控画面从最初的D1标清画面,逐渐迈向1080p全高清,甚至4K超高清。随之而来的问题是,前端采集设备像素的提高给视频编解码和后端存储设备带来
25、了巨大的压力。因此,视频编解码技术成为了视频监控技术发展的焦点,也是当前视频监控厂商技术竞争最激烈的地方。目前国内主流厂商的使用的视频编解码普遍使用的是MPEG-4和H.264编解码技术。当然,随着H.265技术的不断成熟,凭借其更优越的性能表现,将会逐步取代MPEG-4和H.264成为主流。在世界范围内,目前的视频监控领域,基本保持着H.264/MPEG-4为主,H.265和SVAC为辅的局面3。下面对常用的视频编解码概念和技术进行介绍并分析其优缺点。MPEG-4编码技术:Moving Pictures Experts Group,是一个致力于运动图像的压缩编码标准化工作的组织4。MPEG-
26、4是在MPEG-1和MPEG-2基础上发展改进而来的。MPEG-4标准是基于内容和对对象的编码标准,和传统的图像编码方式不同,MPEG-4只处理帧和帧之间的差异元素,即抛弃相同图像元素,大大减少了编码后合成视频文件的体积,和传统的图像编码相比,同样的文件体积,可以还原得到更清晰的图像。换句话说,相同的原始图像,MPEG-4技术具有更高的压缩比。MPEG-4在2000年正式成为国际标准。MPEG-4仍是当前视频监控系统的主流编解码技术。H.263编解码技术:H.263视频编码标准是专为中高运动图像压缩所设计的低码率图像压缩标准5。H.263技术采用运动视频编码中常用的编码技术,将编码过程分为帧内
27、编码和帧间编码两个过程。.263技术相对于之前的编码技术具有编码技术快,码率低,适用于网络条件不是很好和需要双向编解码的场合。H.264编解码技术:H.264技术是国际标准化组织和国际电联联合制定的视频编解码标准,它也是MPEG-4技术的第十部分。H.264技术相对于其他编解码技术最大的优势是具有极高的压缩比6。在同等图像质量条件下,H.264的压缩比是MPEG-4的1.5倍到2倍左右。在视频监控系统的应用中,H.264低压缩比的特点起到了极大的作用,用户在观看到到高清的视频时,节省了网络带宽和成本,节约了下载时间和存储空间。H.264编解码流程包括五个部分:帧内和帧间预测,变换和反变化,量化
28、和反量化,环路滤波和熵编码。在H.264的发展过程中,高性能的DSP对H.264标准的应用起到了重要作用。目前市场上主流监控设备基本采用的是H.264技术标准。H.265编解码技术:随着前端视频采集设备清晰度的不断提高,从300万到500万,鱼眼相机甚至已经达到了1200万像素值,这意味着视频监控的超高清时代已经到来。但是监控系统所生成的视频文件体积也不断变大,超高清的视频体验带来的是传输的巨大压力,因此对视频编解码技术的要求也进一步提高。举例来说,1路24帧的1080P视频,原始数据流畅传输的要求大约是1G以上,采用H.264编码技术压缩后,可以获得6M甚至4M的传输码流,如果换成前端采集设
29、备采集2K分辨率以上的原始视频,如果仍然采用H.264压缩技术,那么所需要的码流是20M以上。因此需要一种性能更高的压缩技术来满足超高清视频压缩的需求。所以,H.265技术应运而生。H.265编码技术是国际电联在制定H.264标准之后制定的新的视频编解码标准7。H.265保留了H.264技术的优点,并对相关技术进行了改进。新技术着重改善了延迟,编码质量和码流和算法复杂度的问题,达到最优设置。H.264由于算法优化,可以以低于128KB/s的速率传输标清视频,相同条件下,H.265可以传送普通高清视频。如今,H.265技术已悄然兴起,各个厂家也积极的宣传推广H.265技术。预计未来的几年内,H.
30、265技术将成为视频监控设备的主流编解码技术。SVAC编解码技术:SVAC技术是中星微电子和公安部联合制定的一套视频编解码标准。SVAC技术是中国自主知识产权,不是国际性标准。SVAC标准目的在于加强安防视频监控系统和公安报警平台的安全应用。从编码效率上来来讲,SVAC技术优于H.264,但是不如H.265。目前国内支持支持SVAC标准的厂家不多,国内视频监控知名厂商还是多以H.264和MPEG-4为主,但也有少量设备只SVAC标准8。目前从市场来看,从强制试点推行开始,基本上所有的厂家的视频监控设备都要支持SVAC标准,已经有大量的前端设备开始使用SVAC标准,相信在不久的将来,具有中国自主
31、技术的SVAC标准将在国内得到普遍支持和应用。1.3 项目目标本项目旨在建立一个安卓的视频监控系统。现在安卓手机市场迅速发展,安卓新机的发布频率也由以前的一年一次到现在的半年甚至两三个月一次,安卓手机更新换代速度越来越快,智能设备普及率越来越高,每个人都有一部甚至多部智能手机。在用户对手机进行更新换代的时候,难免有旧的设备闲置下来。通过安装一个安卓视频采集软件,即可将安卓手机变身为网络摄像头安置在家里或办公室进行监控,用户可以在PC端或安卓手机上实时观看监控情况。本项目打算开发一个轻量级的移动视频监控系统,本移动视频监控系统包括安卓视频采集端,电脑客户端和安卓手机客户端。电脑客户端和手机客户端
32、可以选择观看源(可能有多个由安卓手机搭建的网络摄像头组),客户端可设置摄像头参数,同时可以对视频实现回放,暂停,截屏,等功能。1.4 本章小结本章介绍了本安卓视频监控系统的来源和实际应用,研究了视频监控传输过程中的关编解码技术和当前移动视频监控编码技术的发展,介绍了本项目的想要实现的目标和意义。2 开发环境和相关技术介绍2.1 开发环境本移动视频监控基于安卓操作系统开发。安卓操作系统是由谷歌公司带领开发的移动操作系统。安卓系统主要安装在移动终端设备上,如智能手机和平板等设备9。安卓应用一般由四大组件构成。四大组件分别是:活动,服务,广播接收器和内容服务器。活动是安卓应用的主界面,是软件与用户交
33、互的界面,也是用户体验最直观的地方,安卓是一个用户友好的操作系统。其次相对于其他移动操作系统,安卓平台有以下不可替代的优点:首先安卓有着数量丰富的控件,安卓系统为开发者提供了丰富的系统控件,利用这些控件,开发者可以开发操作简单,界面漂亮的软件,同时,借助这些控件可以满足一些设计需求,如一些布局控件。其次安卓系统是一个开源的系统,开源意味着安卓系统给开发者提供了自由开放的开发环境,就会有更多的厂家和开发者加入安卓阵营。同时也给用户带来了丰富的硬件选择10。最后,安卓系统具有完整的文件权限,支持扩展存储,方便进行视频录制,截屏等文件操作。最近几年,安卓手机市场份额持续增长,根据2016年市场份额统
34、计,安卓系统占全球智能手机86.2%的市场份额,根据预测,在2018,2019年安卓市场份额仍会增长。因此,选择安卓系统进行开发,软件的升级维护都可以得到保障,同时借助安卓系统的高占有率,也方便软件的发布推广。本移动视频监控系统基于Android Studio开发。Android Studio是谷歌开发的安卓开发工具。相对于Eclipse,Android Studio具有启动速度快,UI更漂亮,完善的插件系统,整合了gradle构建工具和完美整合版本控制等优点。因此,本次开发使用Android Studio开发工具。2.2 编程语言本移动视频监控系统采用Java语言进行开发。Java语言是一种
35、面向对象开发的程序设计语言。Java语言吸收了C+和其他语言的优点,而且Java语言有自己独特的有点。Java语言支持多线程并发设计,支持多媒体数据控制,支持网络传输。Java语言的主要特性如下:Java语言是面向对象的程序设计语言。Java语言提供了丰富的类,继承和接口的支持,Java语言支持接口之间的多继承,支持用implements完成类与接口之间的实现机制。其次,Java语言是分布式的。语言。在Java的应用编程接口中有一个网络应用编程接口,这个接口提供了网络编程接口的类库。Java语言是一种高性能的语言。与解释性的高级脚本语言相比,Java语言是高性能。Java语言还有一个最重要的有
36、点就是Java程序的健壮性。Java语言的异常处理,强类型机制是Java语言健壮性的保证,丢弃指针是Java语言明智的选择。同时,Java语言的安全检查机制使得Java语言更具有健壮性。因此,采用Jav语言开发本移动视频监控系统。2.3 关键技术2.3.1 HTTP技术HTTP (Hypertext Transfer Protocol ),中文全称是超文本传输协议,HTTP协议在osi七层模型的应用层,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP协议主要有以下特点:HTTP协议支持客户端/服务器模型,如浏览器中的文本和图像传输就用到了HTTP协议11。HTTP协议灵活,它可以传
37、输不同类型的数据,正在传输的类型由Content-Type加以标记即可。与TCP协议不同,HTTP协议是一种无连接的协议,所谓无连接的含义是:客户端发起请求后,服务器不需要发送确认,直接发送带传输的数据即可。服务器发送完客户端请求的数据,收到客户端的应答,即可断开连接。这种传输方式减少了连接建立的时间,可以节省传输时间,提高传输效率。HTTP协议是一种无状态的协议:同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。2.3.2 SurfaceviewSurface是原始图像缓冲区(raw buf
38、fer)的一个句柄,而原始图像缓冲区是由屏幕图像合成器(screen compositor)管理12。就像在C语言中一样,通过一个文件的句柄,就可以获得文件内容,控制文件。同理,通过Surface就可以获得图像缓冲区的内容。SurfaceView提供了一个专门用于绘制的surface,你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface在屏幕的正确绘制位置。简单来说,SurfaceView与Surface的联系就是,Surface是管理显示内容的数据(implementsParcelable),包括存储数据的交换。而SurfaceView就是把这些数据显示出来
39、到屏幕上面。可以通过SurfaceHolder这个接口去访问Surface,而执行getHolder()方法可以得到SurfaceHolder接口。当SurfaceView的窗口可见时,Surface就会被创建,当SurfaceView窗口隐藏时,Surface就会被销毁。当然了,你也可以通过复写 HYPERLINK /reference/android/view/SurfaceHolder.Callback.html l surfaceCreated%28android.view.SurfaceHolder%29 surfaceCreated(SurfaceHolder)和 HYPERLIN
40、K /reference/android/view/SurfaceHolder.Callback.html l surfaceDestroyed%28android.view.SurfaceHolder%29 surfaceDestroyed(SurfaceHolder)这两个方法来验证一下Surface何时被创建与何时被销毁。所有SurfaceView 和 HYPERLINK /reference/android/view/SurfaceHolder.Callback.html SurfaceHolder.Callback的方法都应该在主线程(UI线程)里面调用,应该要确保渲染进程所访问变量
41、的同步性。你必须确保只有当Surface有效的时候,才能让渲染进程访问。简单来说,SurfaceView与Surface的联系就是,Surface是管理显示内容的数据,包括存储于数据的交换。而SurfaceView就是把这些数据显示出来到屏幕上面。SurfaceHolder是控制surface的一个抽象接口,你可以通过SurfaceHolder来控制surface的尺寸和格式,或者修改surface的像素,监视surface的变化等等,SurfaceHolder是SurfaceView的典型接口。SurfaceHolder.Callback是监听surface改变的一个接口。2.3.3 Jav
42、a多线程线程,是程序执行的最小单元,不具有自己的内存单元,与同一进程当中的其他线程共享全部的资源,使用多线程可以合理的利用计算机的资源,提高处理效率。Java多线程实现的方法有两种,第一实现Java.land.Runnable接口,实现它的Run()方法,并将线程的执行主体放入其中;第二,Java.lang.Thread,重写它的Run()方法,然后将线程的执行主体放入其中。这两种实现方法,继承Thread类方法实现起来比较简单,但是继承Thread类之后就不能继承其他的类了,也就不能继承别的类中我们想使用的方法了。而使用Runnable()方法就不存在这种问题,这种实现方式将线程主题和线程对
43、象分离开来,逻辑上比较清晰,更推荐使用Runnable()方法。2.4 本章小结本章介绍了开发本系统所用到的开发语言,开发环境和相关技术,为接下来的开发做了准备工作 ,保证项目顺利进行。3 需求分析和系统设计3.1 可行性研究在开发一个软件时,首先要考虑的就是可行性分析。可行性分析也成为可行性研究,合理的可行性分析可以明确开发的目的,减小开发的盲目性,避免浪费人力额和资源。可行性研究一般从以下三个方面着手:(1)经济可行性伴随着手机硬件行业的不断进步和移动通信技术的迅速发展,安卓智能手机的价格也逐渐平民化,无线局域网和移动网络的接入也很方便。在移动互联网迅速发展的时代,每个人都有一部甚至多部智
44、能手机,而安卓移动视频监控所需的仅需要一部安卓手机,因此,开发一个基于安卓平台的移动视频监控系统在经济上是完全可行的。(2)技术可行性开发一个安卓的视频监控系统,需要的技术有视频编解码技术,网络传输技术,流媒体传输技术。安卓程序多用Java语言开发,本次开发所用的技术有完整的安卓的类库支持。因此,在技术上,开发是完全可行的。(3) 操作可行性安卓终端安装视频采集软件,可充当IP摄像头,操作简单,在安卓端或PC端观看,因此操作可行。3.2 系统总体设计本视频监控系统由视频采集端,服务器端和客户端组成。由安卓手机充当视频采集端,客户端包括电脑客户端和手机客户端。本视频监控系统操作容易,上手简单。本
45、视频监控系统结构图如图3.1所示:图3.1 系统结构图软件开发时,首先要设计好软件的各个模块,合理的模块设计才能使软件正常运行,系统正常运转。本移动视频监控系分为视频采集端,电脑客户端和手机客户端三个部分。视频采集端由预览模块,编码模块,和传输模块组成。手机客户端由界面模块和播放模块组成。电脑客户端由播放模块和设置模块组成。(1)视频采集端模块图如图3.2所示:图3.2 视频采集模块图(2)手机客户端模块图如图3.3所示:图3.3 手机客户端模块图(3)电脑客户端模块图如图3.4所示:图3.4 电脑客户端模块图3.3 系统界面需求和设计软件的界面是用户日常接触最多的地方,是用户与硬件互动的窗口
46、。软件界面一方面要清晰的展示出软件的功能,另一方面也要给用户良好的视觉审美效果。科学合理的用户界面可以简化用户操作,方便用户使用13。判断一个软件界面是否合理,是否对用户友好,应在满足用户需求的同时优化操作逻辑,满足用户审美需求,为用户提供最大的便利。开发者在开发的时候,不仅要满足用户的功能需求,也要满足用户的审美需求,为用户提供良好的人机交互体验。用户界面设计的主要原则如下:一致性原则。用户界面设计最重要的原则就是一致性原则,用户界面设计最重要的事情就是保持界面运行的一致。对于选择列表框来说,如果要保持一致性原则就应该保持按下一个按钮与按下所有按钮的响应事件是相同的。保持用户界面的一致性可以
47、降低用户的学习成本,有利于软件推广。本视频监控系统的视频采集端由主界面和设置界面组成。主界面是摄像头预览界面,在主界面应当展示服务器的相关信息。在主界面可以点击设置按钮,选择摄像头,设置闪光灯,设置视频源参数等。客户端界面可自主选择输入服务器地址,还可以选择不同的监控源,客户端界面还内置了常用的服务器地址。客户端界面还有操作提示,提示如何使用客户端。本移动视频监控系统的软件设计本着简化操作,功能明确的设计目的,设计如下:(1)采集端设计采集端屏幕显示的是摄像头的预览,为了方便用户查看服务器地址,可以在预览界面显示相关使用信息。同时应当有一个设置按钮,在二级菜单中可以对相关参数进行修改。采集端主
48、界面设计图如图3.5所示:图3.5 采集端主界面设计图采集端设置示意图如图3.6所示:图3.6 采集端设置设计图(2)手机客户端设计客户端界面首先应当有简单明了的使用指南。因为本移动视频监控系统可能有多个网络摄像头,因此在客户端界面应当有摄像头选择按钮。同时,在客户端也应该可以对摄像头的相关参数进行设置的按钮。图3.7 手机客户端主界面设计图(3)PC端界面设计:在PC端应该可以对摄像头的相关参数进行设置的选项。同时为了充分利用屏幕空间,应当可以实现分屏播放功能。PC端界面如图3.8所示:图3.8 PC端设计图3.4 系统功能需求和设计此移动视频监控系统采集端实现的功能主要有:(1)采集端主界
49、面可以显示服务器信息,采集端可设置调用前后摄像头,可设置调用闪光灯,可设置采集视频流的清晰度和分辨率。(2)手机客户端可实现实时播放监控视频,并可以回放,暂停等功能。、系统采集端应当实现如下功能:首先可以进行摄像头的选择,由用户选择使用前置或后置摄像头。其次为了夜间监控需要,用户应当可以选择是否使用闪光灯。 最后还应当可以设置视频分辨率和帧数。(3)电脑客户端可实现实时播放,暂停,回放等。电脑客户端还可以实现二分屏播放,可以切换不同的视频源,选择不同的摄像头播放不同的监控画面。3.5 算法选择本视频监控系统选择MPEG编码技术和HTTP传输技术。相对于其他的编解码技术,MPEG技术可以获得更清
50、晰的图像质量,互联网通信技术飞速发展,网络完全能够满足高清传输的需求。因此选择MPEG编码技术。HTTP是无连接的传输技术,可以减少传输延迟,因此选择HTTP技术传输。3.6 本章小结本章首先介绍了本移动视频监控系统实现的可行性。然后描述了系统的结构和组成,系统的界面需求设计和系统的功能需求设计,最后介绍了系统实现的算法选择。4 系统实现4.1 界面实现4.1.1 采集端界面模块实现采集端界面实现效果如图4.1,图4.2所示:图4.1 主界面实现图图4.2 设置界面实现图(1)安卓软件的设置界面模块大部分都是从Preference Activity类继承下来的。Preferences Acti
51、vity是Android中专门用来实现程序设置界面及参数存储的一个Activity。而Shared Preferences是安卓系统提供的一个轻量级的存储类,主要用于保存一些配置信息,比如窗口状态,还有一切其它无关紧要的配置,每次都即拿即用的数据。这里我们用Preferences Activity类和preferences.xml来实现添加设置按钮功能。总体思路是使用一个On create()方法来实现窗口更新,从而显示服务器信息。OnCreate()是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数进行调用的。一个窗口创建之后,会向操作系
52、统发送WM_CREATE消息,OnCreate()函数主要是用来响应此消息的。因为在MFC里面用一种消息映射的机制来响应消息,也就是可以用函数来响应相应的消息。就拿CMainFrame类来说,当窗口创建后会产生WM_CREATE消息,我们可以在OnCreate函数里实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。(2)在surfacepreview界面绘制完成后,调用addPreferencesFromResource()方法,更新界面,界面布局的设置在preferences.XMl文件中。Protected void onCreate (final Bundle savedIns
53、tanceState) Super.OnCreate(savedInstanceState);addPreferencesFromResource(R.xml.preferences);Preferences.xml中的设置如下:显示设置界面中的摄像头 android:key=camera android:title=摄像头/显示设置界面中的端口号 android:key=port android:title=端口号 android:inputType=number android:defaultValue=8080 / 显示设置界面的视频分辨率 android:key=size androi
54、d:title=视频分辨率/ 显示设置界面的视频质量 android:key=jpeg_quality android:title=视频质量 android:inputType=number android:defaultValue=40 /(3)利用setOnPreferenceClickListener()方法完成监听按下设置按钮事件,当按下摄像头设置按钮式时,实现摄像头选择。SetOnPreferenceClickListener(new OnPreferenceClickListener() Override public boolean onPreferenceClick(Prefe
55、rence preference) setCameraPreferences(cameraPreference); return false;同理,视频分辨率和闪关灯设置也是如此。SetOnPreferenceClickListener(new OnPreferenceClickListener() Override OnPreferenceClick(Preference preference) SetSizePreferences(sizePreference, cameraPreference); return false; 4.1.2 安卓端界面模块实现(1)安卓布局介绍:安卓有五大布
56、局:线性布局,相对布局,帧布局,表格布局和绝对布局。线性布局,是5种布局最常用的一种,从字面上也比较好理解,就是布局呈线性的,这种布局在显示组件的时候会默认保持组件之间的间隔以及组件之间的互相对齐。线性布局显示组件的方式有两种方式:垂直和水平,是通过orientation来设定的。线性布局的常用属性如下:android:orientation 表示布局方向,取值vertical表示垂直布局,取值horizontal表示水平布局,android:gravity 表示视图的对齐方式。内容包括:top、bottom、left、right、center_vertical、center_horizont
57、al等。布局中的视图可以使用如下属性android:layout_gravity 表示单个视图的对齐方式,android:layout_weight 表示单个视图所在大小的比重,当layout_weight为0时,视图大小由自身确定,当layout_weight大于0时,视图在线性布局方向上根据比重拉伸。这里我们的软件采用线性布局设置,界面实现效果如图4.3所示:图4.3 手机客户端实现图(2)首先利用activity_main_demo.xml绘制界面视图 完成界面绘制和按钮设置。然后利用items = new ArrayList()方法在界面上添加可点击链接。items.add(:8080
58、/*-摄像头1-*/);items.add(:8080/*-摄像头2-*/);items.add(:8080/*-摄像头3-*/);items.add(:8080/*-摄像头4-*/);items.add(:8080/*-摄像头5-*/);即可完成整个主界面绘制。4.2 系统功能实现4.2.1 采集端预览模块实现(1)SurfaceViewSurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。你可以通过SurfaceHolder接口访问这个Surfac
59、e,用getHolder()方法可以得到这个接口。当surfaceview变得可见时,surface被创建;surfaceview隐藏前,surface被销毁。这样能节省资源。如果你要查看 surface被创建和销毁的时机,可以重载surfaceCreated(SurfaceHolder)和 surfaceDestroyed(SurfaceHolder)。surfaceview的核心在于提供了两个线程:UI线程和渲染线程。这里应注意:所有SurfaceView和SurfaceHolder.Callback的方法都应该在UI线程里调用,一般来说就是应用程序主线程。渲染线程所要访问的各种变量应该作
60、同步处理。由于surface可能被销毁,它只在SurfaceHolder.Callback.surfaceCreated()和SurfaceHolder.Callback.surfaceDestroyed()之间有效,所以要确保渲染线程访问的是合法有效的surface。(2)SurfaceHolder SurfaceHolder是surface的抽象接口,可以控制surface的大小和格式, 以及在surface上编辑像素,和监视surace的改变。这个接口通常通过SurfaceView类实现。3. SurfaceHolder.Callback用户可以实现此接口接收surface变化的消息。当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量体系监视和测量资源培训课件
- 绘画厨具课件教学课件
- 就餐服务课件教学课件
- 美术蜘蛛课件教学课件
- 高三化学一轮复习 氮及其化合物说播课课件
- 膝关节保膝治疗
- 车轮滚滚中班教案反思
- 鞭炮与安全教案反思
- 好玩的空气说课稿
- 物联网燃气报警器
- 莲藕的贮藏保鲜技术
- 油气地质储量计算及评价
- 【2023高血压患者服药依从性研究(论文)2800字】
- 村卫生室2023年度绩效考核评分细则(基本公共卫生服务)
- 宽带接入合同
- 阴阳五行学说 PowerPoint 演示文稿 全面版【PPT课件】
- 测定总糖原始记录
- 混凝土强度自动评定表格
- 大学生心理稿范文800字(优选9篇)-1
- 北京科技大学EMC-VNX5300实施文档
- 高一女生青春期教育讲座
评论
0/150
提交评论