【Android论文栏目提醒】:网学会员Android论文为您提供Android手机端远程监控系统 - 硕士论文参考,解决您在Android手机端远程监控系统 - 硕士论文学习中工作中的难题,参考学习。
申请上海交通大学工程硕士学位
论文Android 手机端远程监控系统 学校代码: 10248 作者 1090379190 第一导师: 戚正伟 第二导师: 金邦飞 学科专业: 软件工程 答辩日期: 2012 年 5 月 16 日 上海交通大学软件学院 2012 年 5 月 A Dissertation Submitted to Shanghai Jiao Tong University for Master Degree of EngineeringAPPLICATION SOFTWARE DESIGN FOR WEBCAM MONITOR SYSTEM IN
ANDROID MOBILE PLATFORM University Code: 10248 Author: Wu Jing Student ID: 1090379190 Mentor 1: Qi Zhen Wei Mentor 2: Jin Bang Fei Field: Software Engineering Date of Oral Defense: School of Software Shanghai Jiaotong University May 2012
Android 手机端网络摄像头监控系统
Android 手机端远程监控系统 摘 要 由于原本在 Windows 平台上的用户提出希望能够在移动设备上实时查看监控影像的强烈需求,且目前
Android 手机平台上网络监控实时影像播放软件由于没有合适的文件解析器而稀缺,因此决定开发本款软件。
到目前为止,专业的监控摄像头通常支持采用 MJPEG、MPEG-4 或者 H.264 格式来封装影像数据并进行发送。
MJPEG 格式的数据都是采用了 HTTP(Hypertext TransferProtocol)协议进行传输。
当摄像头采用 MPEG-4 格式或是 H.264 格式封装视频数据时,通常采用 RTP(Real-time Transport Protocol)协议进行传输。
本文设计开发一款能够在装载了
Android 系统的手机上实时播放远程监控摄像头所拍摄影像的应用软件。
本软件使用 JAVA 语言实现了对摄像头通过 HTTP 协议和单播的 RTP 协议发送的流数据的接收。
使用 HTTP 协议获取到 MJPEG 流数据后, 将 编写了解析的函数, MJPEG流数据拆分成单张的 JPEG 图像数据,然后使用
Android 自带的 JPEG 解码库进行了解码。
虽然监控摄像头使用的编码格式都是相对使用较为广泛的视频标准,但是由于实时的视频流数据都是一边获取一边发送的,因此没有文件的长度值,这点与存储在磁盘上的视频文件不同。
由此造成播放 MPEG-4 和 H.264 的流数据时在文件解析的部分就无法成功,导致无法正常播放。
本软件使用 C 语言封装了对 MPEG-4 数据流的解析以及解码库的调用接口,使用 JAVA 语言实现了针对摄像头发送的 H.264 格式的 TS(TransportStream)流的解析工作:从视音频混合的 TS 流中剥离出视频数据并解析成 H.264 格式解码所需的 NAL(Network Abstraction Layer)单元后通过 JNI(Java Native Interface)送入解码库进行解码。
目前大部分的手机不能直接对摄像头捕获的实时视频流进行解码的原因就在于没有对应的文件解析器。
监控图像的播放还需要确保图像数据的正确性以及在时间上的实时性,这两者之间存在着相互影响的因素。
对于这个准确性的控制本文采用丢帧管理机制来完成。
由于网络传输环境复杂,会发生数据包丢失的情况,数据包的丢失将会导致图像解码发生错误,一旦检测发现这种情况,就需要将与之相关的数据一同丢弃。
由于监控影像还需要确保显示图像与摄像头捕获图像之间的时间差不能太大。
由于设备的软件或者硬件的性能以及网络传输能力的限制导致不得不丢弃某些来不及处理的数据,本文设计使用三个位于 I
Android 手机端网络摄像头监控系统不同线程的缓冲区对主动丢帧和被动丢帧的情况采取控制,防止由于丢帧产生的解码错误。
此外,还结合了手势识别和多点触摸的功能实现了从手机端控制远端摄像头动作的功能。
由于不同厂家设计的摄像头的 API(Application Programming Interface)不同,会造成开发出的应用程序的兼容性差,无法形成产品。
本软件采用定义外部标准配置文件来解决这一问题。
关键词
Android,网络传输,流媒体,视频编解码,丢帧管理 II
Android 手机端网络摄像头监控系统APPLICATION SOFTWARE DESIGN FOR WEBCAM MONITOR SYSTEM IN
ANDROID MOBILE PLATFORM ABSTRACT Since the users have the strong demand use the mobile to be able to watch the real timemonitoring that is used to be on the Windows platform. In another hand there is scarcely anyreal-time network monitor playing software with good performance on
Android mobileplatform as there is no proper file parser. So I decided to fill the blank. So far the professional surveillance camera usually supports using MJPEG MPEG-4 orH.264 standard to compress image data and send. MJPEG format data are based on HTTPprotocol for transmission. It used to transmit data by RTP protocol when the camera compressvideo data by MPEG-4 standard or H.264 standard. This paper designs an application whichcould play real-time video send by network camera. The application runs on the mobile phonewhich use
Android Platform. This software uses JAVA code to implement the receiver of image data that cameratransmitted by following the HTTP protocol and unicast RTP protocol. The software usesHTTP protocol to get MJPEG flow data and analysis the flow data in JAVA layer. Then itsplits the flow data into lots of single JPEG image data and decode the JPEG image data oneby one with
Android own decoding library. Video codec of the use of surveillance camerasare relatively more widely used video standard. However due to real-time video streamingdata to send by side to side the length of the file cannot be calculated. It is different withvideo files which stored in the disk. So that the MPEG-4 stream and H.264 stream cannotplayback because file parser error. The interface that parser MPEG-4 stream of data and call decoding library is coded by C.The TS stream parser of H.264 which used for camera is coded by JAVA. And the softwareuse JAVA to split the mixing data into the audio data and the video data which parsed into III
Android 手机端网络摄像头监控系统NAL unit. Then decode the NAL unit data by JNI decoding libraries. Now most of the mobilephone cant directly display the real-time streaming video that the camera caught because itwas no corresponding file parser. Playback monitoring image need to ensure the correctness of the image data and ensurethe real-time in time. But the correctness of the image data and the real-time in time aremutual restraint. In this paper it would be use frame dropping manager to achieve it. As thenetwork transmission environment complex it will lost packet. Packet loss will lead to imagedecode error. If found this issue it needs to discarded the related data together. Plus it need toensure that the delta-T between display image with cameras capture image not be too big. Soit has to discard some data when the software or hardware could not process it in time. In thispaper it design three buffer in different threads to control it for avoid the decode error whichcaused by frame dropping. In addition this software use Multi-Touch and gesture recognitionto implement the function of control network camera action by mobile phone. The differentmanufacturer designs the different API. It will cause the applications compatibility is poorand cannot be a product. In this paper define external standard configuration files to solvethis problem. Keywords
Android transport stream video codec frame droppingmanager IV
Android 手机端网络摄像头监控系统 目 录1 绪 论 ................................................................. 1 1.1
Android 系统的市场现状及发展...................................... 1 1.2
Android 手机端远程监控应用的市场前景.............................. 2 1.3 技术可行性 ....................................................... 2 1.4 研发流程 ......................................................... 32 技术准备 .............................................................. 4 2.1
Android 系统的软件架构............................................ 4 2.1.1 应用程序层 ................................................. 4 2.1.2 应用程序框架层 ............................................. 5 2.1.3 系统运行库层 ............................................... 5 2.1.4 Linux 内核层................................................ 6 2.2 图像与视频编码格式 ............................................... 6 2.2.1 BMP ........................................................ 6 2.2.2 JPEG ....................................................... 7 2.2.3 MJPEG ...................................................... 7 2.2.4 MPEG-4 ..................................................... 7 2.2.5 H.264 ...................................................... 8 2.2.6 结论 ....................................................... 8 2.3 网络流式传输协议 ................................................. 9 2.3.1 HTTP ....................................................... 9 2.3.2 RTP ....................................................... 10 2.3.3 RTCP ...................................................... 10 2.3.4 RTSP ...................................................... 103
Android 手机端网络监控系统的设计 ..................................... 11 3.1 远端摄像头配置信息的获取 ........................................ 11 3.2 流媒体影像网络数据包的获取与分析 ................................ 11 3.2.1 获取摄像头发送的网络数据包 ................................ 12 3.2.2 数据包的解析 .............................................. 14 3.3 多媒体编解码技术 ................................................ 16 3.3.1 多媒体编解码处理结构 ...................................... 16 3.3.2 静态图像编码技术 .......................................... 19 V
Android 手机端网络摄像头监控系统 3.3.3 动态图像编码原理 .......................................... 20 3.3.4 多媒体解码技术 ............................................ 22 3.3.5 MJPEG 格式
Android 平台解码................................. 23 3.3.6 MPEG-4 在
Android 平台上的解码.............................. 24 3.3.7 H.264 格式在
Android 平台上的解码........................... 28 3.4 数据准确性控制 .................................................. 31 3.4.1 被动丢帧管理 .............................................. 31 3.4.2 主动丢帧控制 .............................................. 33 3.4.3 小结 ...................................................... 35 3.5 手机控制远端摄像头的动作 ........................................ 35 3.5.1 控制摄像头的转动方向 ...................................... 35 3.5.2 摄像头景深控制 ............................................ 35 3.6 多个厂家不同品牌型号摄像头的兼容问题 ............................ 364 系统实现与功能测试验证 ............................................... 37 4.1 监控画面截图 .................................................... 38 4.2 外网摄像头连接测试 .............................................. 41 4.3 HTC Dream(G1) ................................................. 43 4.4 HTC Nexus One ................................................... 44 4.5 Samsung Galaxy Nexus ............................................ 45 4.6 对比 ............................................................ 465 总结与改进 ........................................................... 48参考文献 ................................................................ 50致 谢 ................................................................... 52攻读学位期间发表的学术
论文目录 .......................................... 53 VI
Android 手机端网络摄像头监控系统 1 绪 论 2010 年之后,国内的手机行业呈现井喷的态势。
随着智能手机的普及和 3G网络的出现,IT 业正式跨入了移动互联网的时代。
从前,智能手机平台主要由得到市场和手机用户们广泛认可的 Symbian 系统占据主导地位,其余由有着完美人机交互体验称号的苹果和微软公司的 Windows Mobile 系统,经典的 Linux 以及专注于商务领域的 Palm 几分天下。
然而根据调研公司 Canalys 在 2011 年初的统计,Google 公司于 2007 年年末刚刚公布的
Android 操作系统1,不仅相较 2009年同期以惊人发展速度成长了 615,还超越许多人认为历久不衰的 Symbian 系统,成为全球第一的智能手机平台。
2011 年,
Android 系统就不止应用于智能手机,也在平板电脑市场急速扩张,并且已经开始进入数字电视领域。
在智能手机和平板电脑市场,
Android 系统拥有很强的竞争力。
据市场调查公司 ComScore公布的数据显示,2012 年 1 月份
Android 系统在智能手机领域市场占有率达到了48.6。
另外一家市场分析机构 IDC 的报告显示,2011 年第四季度平板电脑领域
Android 系统的市场份额为 44.6,iPad 为 54.7,预测 2015 年
Android 平板电脑将完成对 iPad 的超越。
1.1
Android 系统的市场现状及发展 在手机平台领域,Palm OS 主要用于 PDA 等专业设备上,但是目前却已逐渐失去市场占有率; Symbian 拥有定制灵活的特性,这点比较受到手机制造商和网路营运商的欢迎,相较而言,在这方面 Windows CE 就比较欠缺了。
但是这些定制灵活性使得整合 Symbian 手机更加困难。
Windows Mobile 系统由于源自 因此无论是界面设计还是功能应用都几乎和 PC 机如出一辙。
Windows 桌面系统,虽然在理论上 Linux 系统有着最为开源的特性,给开发者发挥的空间最大,但从近几年的发展来看,Linux 系统的市场占有率一直无法与其他几家相抗衡。
由苹果公司为 iPhone 开发的 iPhone OS 操作系统。
拥有相当出色的用户体验,但该公司的 iPhone 产品过于单一,与登陆几乎全美所有移动运营商专卖店的多款
Android 智能手机相比,苹果 iPhone 显然并不具有市场优势。
而
Android 的系统内核是基于网络性能超强的 Linux,因此其网络性能较其他系统有很大优势,硬件平台的适应面也更为广阔2。
除此之外 Google 还赋予了
Android 丰富的 JAVA 接口,使得其更易于进行二次开发3。
目前,
Android 1
Android 手机端网络摄像头监控系统系统正以及其强劲的势头迅速占领着手机的平台市场。
1.2
Android 手机端远程监控应用的市场前景 在 目前,
Android 手机终端上对于网络监控系统的普遍应用是利用手机上装有的摄像头硬件,再配合 Wi-Fi 无线网络,使手机成为网络监控系统中的一个可移动的网络摄像头。
事实上,在需要专业监控的工程领域,用户是希望能够减少人力成本,因此通常会使用专业的监控摄像头而不是使用手机作为影像捕获端。
相对的,“在任意时刻都能够查看到监视画面”,却是大多数使用监控系统的客户的需求。
那么,利用拥有播放视频的功能,能够使用无线网络传递数据,并且通常随身携带的智能手机作为监控影像的显示端也就拥有了广阔的潜在市场。
由于目前普及的
Android 平台系统(2.2~3.0)上没有包含对于实时视频流的解析器,而且当前在使用的监控摄像头大部分都不支持手机访问模式,因此当前大多数用户无法通过手机直接查看实时的监控影像。
即便用户使用了
Android4.0 以上版本的手机,也只有当连接的摄像头本身支持手机模式的情况下,才能够通过手机查看监控的影像。
相对于
Android 系统占领市场的强势表现而言,其诞生的时间过于短暂,使得
Android 上的应用软件及其缺乏。
另外,之前 Windows 平台上的用户提出希望能够在移动设备上实时查看监控影像的强烈需求,这与目前
Android 手机平台上网络监控实时影像播放软件的稀缺形成鲜明对比。
可见开发这样一款软件,市场前景良好。
1.3 技术可行性 由于已经开发了基于 Windows 平台的同类产品,基础功能需求确立以及摄像头的数据准备工作和开发资料的搜集分析工作已经完成,程序编写方面也可以进行借鉴。
但是
Android 系统是基于 Linux 的,并且需要使用 JAVA 语言来处理 与对 API 接口的调用, Windows 系统有着本质的区别。
要将这套系统从 Windows平台移植到
Android 平台,不仅需要熟悉 C、C和 JAVA 语言,Linux 系统编译机制和编译脚本,更需要熟悉
Android 系统的运作方式,API 接口,以及它的优势和限制4。
需要考虑手机硬件性能的支持情况。
开发在手机上运行的
Android 应用程序,尤其是像播放视频这类需要消耗大量内存和系统运算的功能,对硬件设备的依赖就更加明显。
目前手机硬件速度的提升明显快于软件的研发速度,就如同几年前 2
Android 手机端网络摄像头监控系统市场上还没有
Android 手机一样,虽然早期的手机可能无法满足实时视频播放的要求,但是目前市面上销售的绝大部分手机的硬件.
上一篇:
基于Android平台的嵌入式数据库同步及优化策略研究
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a