基于Android平台的远程视频监控系统中手机子系统端设计

来源 :企业技术开发·中旬刊 | 被引量 : 0次 | 上传用户:oihvhuhuiuiui
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着中国移动互联网的快速发展,基于移动平台的视频监控凭借其独特的优越性开始进入人们的视野。移动视频监控不仅具有传统监控的功能,而且具有移动性和实时性,用户可以通过移动终端随时随地监控,满足用户多元化的需求。数字化、网络化、智能化是目前视频监控技术发展的方向。文章视频监控Android端的一种有效解决方案。Android移动设备端进行视频及地理信息采集,通过流媒体协议将经过编码的H.264实时视频数据发送到服务器端,服务器端进行存储及解码,监控客户端完成视频播放、视频管理及辅助控制。
  关键词:Android平台;MediaRecorder;视频监控
  中图分类号:TN943 文献标识码:A 文章编号:1006-8937(2015)20-0016-02
  1 目前视频监控系统面临的问题及基于Android平
  台的远程视频监控系统的优点
  随着现代信息化技术的发展,视频监控系统已经得到广泛应用,但同时使用传统的视频监控系统将面临诸多问题:
  ①给用户增加额外的工程成本。
  ②同时面临视频采集终端固定和图像采集角度确定这两个问题,不能全方位多角度地展示现场情况等缺陷。
  ③视频数据传输问题也限制了传统视频监控系统的使用。
  与传统远程视频监控系统相比,基于Android平台的远程视频监控系统具有以下优点:
  ①无布点限制,系统可移动性好。
  ②可以实现现场数据的多人多角度视频采集。
  ③实现社会资源利用的最大化。
  2 移动开发平台
  智能手机为移动视频监控系统提供了良好的开发平台,而智能手机操作系统为监控客户端提供软件开发和运行环境,智能操作系统的特性直接影响到人机交互的易用性和稳定性。自上而下分为5层,下面简述各层的功能。
  ①硬件驱动层:该层是最底层,由硬件部分和驱动部分构成,为操作系统层提供功能性支撑及抽象的概念。因此操作系统可以移植在各种不同的硬件设备上,具有灵活的移植性。
  ②操作系统层:该层的主要功能是为业务功能层的应用程序提供编程接口及核心功能。它提供了良好的人机交互界面,可完成文件系统管理,多任务调度管理,内存管理等。
  ③业务功能层:他介于应用操作系统和软件当中,主要完成通信、通用功能。通信功能提供通话,无线协议栈和IP协议等支持;通用功能提供多媒体子系统和安全子系统。
  ④用户界面层:UI层是最后展示给用户可视化操作的界面层,为用户的操作提供方便。
  ⑤应用层:应用层是以业务功能层为基础,为用户提供功能繁多的应用,如电子商务类业务、消息类业务、个人信息管理和GPS位置类业务等。
  3 Android移动设备端子系统设计
  Android移动设备端子系统主要包含视频采集模块,GPS信息采集模块,数据传输模块,远程控制模块等。
  视频数据采集模块:在控制前端,用户可以将摄像头对准某一监控区域,使用手机摄像头采集监控区域的视频图像。摄像头可以根据用户需要调整焦距,用户同时根据服务器端提示进行监控角度调整。
  GPS数据采集模块:在整个视频监控过程中,该模块负责进行GPS信息采集(采集经度及纬度),如果监控过程中用户的位置改变,该模块要给出最新的GPS信息。主要用于对视频进行标记,便于服务器端对历史数据或实时数据进行检索。
  移动设备基本信息采集模块:在视频数据传输前,服务器需要记录移动设备基本信息,这些基本信息是通过该模块采集。主要包含:IMSI、手机号码、移动运营商名字信息。
  控制模块:该模块主要是响应服务器端控制信息,主要工作是根据服务器控制信息对摄像头焦距进行调整,对视频质量进行控制,同时给出用户最佳的监控位置提示信息,便于服务器端获取高质量的数据信息。
  通信模块:该模块将移动设备采集到的实时视频数据及GPS信息根据传输协议打包实时发送到服务器,并对传输过程进行控制。
  4 视频采集设计与实现
  Android 多媒体框架的核心是Open Core,它也被称为PV(Packet Video)。他实现Android平台的所有音视频采集、播放的功能。程序开发人员可以通过Open Core方便快速的开发出符合需求的多媒体应用程序,例如:视频会议,音视频的采集、回放,实时的流媒体播放等应用。
  4.1 录制步骤
  在实际开发中我们并不会过多的研究Open Core的实现,Android提供了上层的Media API给开发人员使用,MediaPlayer和MediaRecorder。本系统将采用MediaRecorder进行视频采集。MediaRecorder录制分为以下几个步骤。
  第一步:实例化MediaRecorder 类对象。
  MediaRecorder myMediaRecorder
  =new android.media.MediaRecorder();
  第二步:初始化myMediaRecorder 对象,对视频采集参数进行设置,具体设置顺序及参数如下:
  ①设置视频。
  ②设置输出格式。
  ③设置帧频率。
  ④设置视频采集像素。
  ⑤设置视频编码方式为。
  ⑥设置手机(预览)显示面板。
  ⑦设置信息输出流。
  第三步:开始录制:
  ①让MediaRecorder 对象处于就绪状态。
  ②开始录音。
  第四步:停止录制并释放资源:
  ①停止录制。   ②从新启动MediaRecorder对象让它处于空闲状态。
  ③释放和MediaRecorder对向相关的所有资源。
  通过以上几个步骤,可以采集到相关视频数据,并将视频数据输出到指定文件,通过播放器可以正常播放已经录制的视频。
  4.2 存在的问题
  但是以上功能并不能适合本系统需要,主要存在两方面的问题:
  ①数据输出到本地文件中,无法实时获取每一帧数据,无法将实时数据向服务器端发送;
  ②通过多次试验发现,H.264的Sequence Parameter Sets(SPS)和Picture Parameter Set(PPS)值在视频录制结束时才回写到输出文件的头部,而在视频数据开始传输时就需要这些参数,显然目前的方法是无法在视频录制过程中进行实时传输。
  4.3 改进措施
  为了解决上面遇到的问题,本系统对视频录制过程进行了如下改进:
  通过LocalServerSocket、LocalSocket对数据输出流进行实时获取;通过相同参数设置进行二次视频录制,其中一次获取SPS及PPS,另外一次进行视频数据获取。
  ①通过LocalServerSocket、LocalSocket对数据输出流进行实时获取。
  MediaRecorder对象采集到视频数据后将数据输出流设置到LocalServerSocket的输出流中,LocalServerSocket对象和LocalSocket对象建立连接,在LocalSocket对象的输入流中获取实时视频数据,然后将视频数据交给通信组件。
  ②通过相同参数设置进行二次视频录制,其中一次获取SPS及PPS、另外一次进行视频数据获取。
  系统进行一次视频数据采集,将进行两次录制,且两次录制参数相同,第一次录制仅仅获取SPS及PPS值,然后停止第一次录制,开始正常的第二次录制。试验证明第一次录制时间很短,大约为0.1 s,对用户来讲是基本上是连续的。
  5 数据传输设计与实现
  系统的通信组件是采用多线程技术,它独立于视频采集组件,即数据采集是一个线程,通信是一个线程。通过系统的总体结构设计可以看出,系统通信一共分了三个部分,分别是:视频数据传输前的基本参数通信、视频数据通信、视频采集完成后辅助数据通信。第一部分和第三部分通信是基于TCP协议的通信,信息载体为XML,服务器端负责建立连接的是监听主线程;视频数据通信是基于UDP协议的,采用RTP进行封装,通过RTCP进行传输控制,通信目标是服务器端为该客户启动的新的监听进程。
  5.1 视频数据传输前的基本参数传输
  Android移动设备端程序启动后,用户点击通信按钮,触发通信组件后,系统开始采集手机基本信息,将这些信息利用XML进行封装。在服务器端主监听进程接收到数据请求后,对数据进行解析,然后将数据写入数据库中。
  5.2 视频数据传输
  RTP封装模块主要负责对H.264视频流进行打包,封装成RTP数据包,并且将包发送到缓冲区。函数原型设计:
  void createRTP(char[] data,String[]args)。
  参数data:需要打包的视频数据存储地址。
  参数args:视频打包是需要的参数,主要包含数据包大小等数据。
  数据发送模块主要对数据缓冲区数据进行发送,当第一次发送数据包时,则应产生并发送控制包中的SDES类型的CNAME包,在发送数据包的时候,要对数据包进行相关统计,包括包的数目,发送的字节等。函数原型设计:
  void sendRTP(char[] RTPData,int len,String[] args);
  参数RTPData:需要发送的RTP数据包的存储地址。
  参数len:本次发送的数据长度。
  参数args:根据RTCP反馈的控制信息组成参数信息。
  5.3 视频采集完成后辅助数据传输
  当视频数据采集完毕并上传完毕后,用户可以给自己上传的视频增加描述,该部分功能主要通过TCP协议实现,将该段视频的唯一ID及视频描述信息封装成XML发送给服务器主监听程序。
  6 结 语
  本文对视频监控技术的研究现状进行了了解,分析了基于Android平台的远程视频监控系统的研究目的和进行软件开发的重要意义,提出了一种基于Android平台远程视频监控系统的手机端设计方案,经过严格测试,验证本方案可行并运行稳定。
  参考文献:
  [1] 常志沛.基于Android的智能手机视频监控系统的设计与实现[D].大连:大连海事大学,2011.
  [2] 李海宁.基于H.264的智能手机监控系统的设计与实现[D].大连:大连理工大学,2009.
其他文献
省委常委会决定: 夏乡同志任中共贵州省委组织部机关党委书记,免去其省委组织部纪检员职务;刘本良同志不再担任中共贵州省委组织部机关党委书记职务。
期刊
目的了解安阳市居民健康素养水平及其影响因素,为以后有目的地开展健康教育工作提供依据,为评价工作效果提供参照。方法采用分层多阶段随机抽样法,抽取46个乡(镇、办事处),92
英语听力的费时低效一直是困扰英语学习者的一大难题。要解决这一难题,必须从语言和非语言障碍两个方面分析影响英语听力理解的障碍因素,采取相应措施排除障碍,提高英语听力理解
贵州省榕江县寨蒿晚寨侗族琵琶歌遐迩闻名,它的特点是婉转抒情,悠扬动听感人,令人心驰神往,陶醉入迷…… 说到侗族琵琶,在侗乡还有个神奇美丽的传说:很久很久以前,侗族人民本
在高中数学课本中,关于球面距离问题仅给出定义,相关概念和例题论述较少,而在高考、竞赛及实际生活中,涉及球面问题的却有许多,且有一定的难度,所以,对于高中生来说,是一个难
期刊
现行的大学英语教学是按照教育部原制定的《大学英语教学大纲》规定的统一教学要求、目的、安排和考试进行的。由于该大纲严重地忽视了我国广大地区间的教育资源和生源的不平
近年来,人民银行宜春市辖内支行坚决贯彻上级行《关于进一步加强审计整改工作的意见》要求,以《工作人员轻微违规行为积分管理办法》为抓手,以巡察和内审发现问题整改为重点,
本篇文章通过回顾英语发展史和分析英语发展现状,从历时和共时角度对比和分析英国英语和美国英语在词汇方面的差异;阐明美国英语是英语这一语种的一种变体,并非另一种语言.
2017年,梅亦市长在政府工作报告明确指出,今后五年,景德镇市政府工作的主要目标是:“两个翻番”、“位次前移”、“率先小康”,即:与2010年相比,人均生产总值和城乡居民可支配收入翻