基于Android平台的移动视频监控系统开发

点赞:6739 浏览:22753 近期更新时间:2024-02-02 作者:网友分享原创网站原创

摘 要 : 利用Android平台开放性、应用程序间平等且无界限特点,开发了移动平台的智能视频监控系统,PC端通过使用UDPSocket来实现怎么写作器端和客户端之间的通信,以实现图像稳定传输;视频监控系统的客户端是通过TCP/IP协议来和怎么写作器端进行实时通信的;控制信息采用TCP传输层协议,解决了其对传输的可靠性高的要求,视频数据采用RTP应用层协议和UDP传输层协议,解决了大量数据流的实时视频数据传输;测试结果表明整个系统运行稳定,连接图像速度快,在较高图片质量的情况下保证了稳定流畅的帧率,达到了预期设想的效果.


Abstract: Using android platform openness, equality and no boundaries between application characteristics, the mobile platform of intelligent video surveillance system is developed, PC by using the UDPSocket to realize the munication between the client and server, in order to realize the image stabilization tranission. The real-time munication between client and server is realized by TCP/IP protocol. Control information adopts the TCP transport layer protocol, which solves the high reliability of the tranission. Video data uses RTP application layer protocol and UDP transport layer protocol, achieving large number real-time video data tranission. The test results show that the system runs stably and is fast in connecting image. It can ensure the stable and ooth frame rate in the case of high picture quality, achieving the expected effect.

关 键 词 : 安卓系统;视频监控;TCP/IP;RTP/IP

Key words: Android;video surveillance;TCP/IP;RTP/IP

中图分类号:TP316 文献标识码:A 文章编号:1006-4311(2013)34-0161-03

0 引言

随着流媒体技术、无线网络技术以及视频压缩技术的不断进步,视频监控技术得到了广泛的应用,同时,监控的规模和范围也在不断的扩大.人们对于安全保障的要求不断的提高,从而使得过去以图文为主的内容怎么写作应经不能够满足用户的需求,取而代之的则是音视频多媒体怎么写作.使用移动终端技术的视频监控系统,不仅具有体积小型化、安装傻瓜化以及配置灵活化的优势,最重要的是还降低了成本.由于网络功能和视频压缩都被集中的保存在小体积的设备中,因此,通过网络远程监控视频设备就可以获得监控视频.目前,网络视频监控不仅面向企业级客户,逐渐的,也通过视频监控为大众提供怎么写作.如旅游景点人流、景点查看、交通导航等.基于开放平台的移动视频监控已经成为监控研究领域的热点[1-2].

1.Android操作系统的架构

最上层是面向用户的Application(应用程序),包括程序、联系人程序、浏览器、地图、等.下面是Application Framework,为开发人员提供访问核心组件所使用的API,包含了丰富的View组件、Content Providers(内容提供器)用来访问另一个应用程序的数据(如联系人),或者共享它们自己的数据、Resource Manager(资源管理器)提供对资源的访问(如本地字符串,图形,布局文件等)、Notification Manager(通知管理器)、Activity Manager(活动管理器)等等[3].

第三层是系统运行库,主要包含程序库和Android运行库.程序库中包含了一些C/C++库,通过应用框架为开发者提供怎么写作,如:Libc(从BSD继承来的标准C系统函数库)、SGL(2D图形引擎)、SQLite(数据库引擎)以及媒体库等等.

Android运行库包括了一个核心库,该核心库提供了JA编程语言核心库的大多数功能.每一个Android应用程序不仅都在自己的进程中运行,并且还拥有一个独立的Dalvik虚拟机实例.设计的Dalivk虽然是一个设备,但却可以同时对多个虚拟系统进行高效的运行.Dalivk虚拟机执行.dex文件(Dalvik的可执行文件),针对小内存使用,对该格式文件进行了优化.虚拟机基于寄存器,所有类都经由Ja编译器编译,通过SDK中的dx工具转化成

.dex格式后由虚拟机执行.Dalivik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制.

接下来一层是Hardware Abstract Layer(硬件抽象层),在早期的架构图中看不到这一层.2008年,Patrick Brady就提出了Android HAL架构,它是为了把Linux kernel与上层框架完全隔开,让Android不至于过度依赖Linux kernel,可以让Android Framework的开发能在不考虑驱动程序的前提下进行.HAL仍以*.so形式存在,Stub向HAL“提供”操作函数,Runtime则是向HAL取得特定模块的操作(operations).2010年2月3日,Linux内核的开发者将Android的驱动程序从Linux内核Staging tree(状态树)上去除,从此,Android与Linux核心开发就分开了.最下面一层是Linux核心,Android的核心系统依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型.Android的Linux kernel也不是GNU/Linux.Android将驱动程序移到userspace,使得Linux driver与Linux kernel分开,其结构如图1所示. 2 协议选取

视频监控系统需要的传输数据分为两类:控制信息和视频数据.尽管两类数据进行传输的时候都是基于IP协议进行的,但是,他们分别采取了应用层协议和传输层协议,这是由于两者的特性要求和实现软件的规模不同引起的[3]:第一,采用TCP传输层协议进行信息控制.之所以采用TCP/IP的传输模式进行信息控制,这是由于控制信息虽然不要求较高的实时性,但是对于传输的可靠性要求却十分高.因此,采用了有严格握手过程和重传机制的TCP传输层协议.第二,传输视频数据时,采用RTP应用层协议和UDP传输层协议.由于网络视频的时效性要求远远高于可靠性,因此,本文采用了RTP应用层的传输协议支持实时传输怎么写作.在传输层,虽然UDP尽量采用交付方式进行出数据传输,但是却没有拥塞控制,从而对于大数据量的实时视频数据比较适合此方式,因此,本论文采用UDP协议作为传输层协议.接收到上层应用程序的多媒体信息码流后,经过RTP装配成数据包发送给下层,然后在通过UDP/IP协议封装后形成RTP流.传输控制子系统是基于RTP协议构建的,通过传输层通信使用的UDPSocket完成.

3.视频监控系统软件设计

在PC机上完成了对视频监控系统应用程序的开发,主要采用图片接收方式来实现移动平台的智能视频监控系统.

3.1 怎么写作器端软件设计 怎么写作器端的功能主要是初始化摄像头和网络端口号以及主机地址,开启视频监控怎么写作,实时捕捉监控现场图像然后等待客户端的连接请求[4].与远程请求的手机客户端成功建立连接后,便开始向客户端发送视频图像信息.怎么写作器端的设计流程图如图2所示.负责现场监控的Pc怎么写作器端,需要对监控设备进行初始化控制,采用Visual Studio编程环境下的c++/MFC语言来实现.在进行网络通信传输时,系统是基于RTP协议构建的,通过传输层通信使用的UDPSocket来实现怎么写作器端和客户端之间的通信,以实现图像稳定传输.Socket通信的部分通过MFC语言中的CSocket类来实现,而摄像头图像采集和控制则利用相应怎么写作厂商提供的SDK进行实现.视频的捕获中,设计了CCaptureVideo类,并将其实现,通过对打开视频响应函数中该类的调用来实现对视频的捕捉.在处理捕获的视频图像时,将捕获的视频图像转换成连续的JPEG格式的图像存储在数据缓冲区中,该线程不停地接受客户端的连接请求,将图像发送给客户端.

3.2 手机客户端软件设计 该视频监控系统的客户端主要通过TCP/IP协议和怎么写作器端进行实施通信的,同时利用Socket实现整个过程.作为通信链句柄的Socket网络通信套接字用于描述端口和IP地址.通过Socket编程,应用程序会向网络发出请求或应答网络请求.Socket作为通信的基石,支持TCP/IP协议的网络通信的基本操作单元.本程序中使用的Socket传输模式,是面向连接的Socket操作使用TCP协议.Socket在该模式下,必须在客户端和怎么写作端建立Socket连接,一旦建立好连接,便可以在一个流接口进行打开、读、写以及关闭等操作,而另一端则以相同的顺序接受所有的信息.相比无连接而言,虽然面向连接的操作效率较低,但数据却具有更高的安全性.基于Android视频怎么写作器系统终端,必须通过采用Socket网络通信技术接受来自监控前端的视频数据.Socket通信使得监控前端和终端,通过网络连接实现数据的交互.Socket连接初始化后才能进行Socket通信,其实现过程与面向连接的Socket通信相同.创建Socket怎么写作线程,当产生监听后,怎么写作主进程负责不断循环的监听接收到的请求,同时建立新的客户连接Socket,创建针对此Socket的通信进程.在视频监控系统中创建Socket的过程,首先用ServerSocket serverSocket等于null在怎么写作器端创建一个Socket,然后用serverSocket等于new ServerSocket(8888)监听端口8888.如果在该端口接收到客户端Socket的请求,则用Socket client等于serverSocket.accept()来创建一个Socket对象.建立连接后,调用InputStreamReader来接收怎么写作器端发送的视频数据,然后通过BufferedReader将此数据读取出来.怎么写作器从前端采集系统接收的数据通过BufferedWriter写入,并通过OutputStreamWriter发送给网络客户端.通信完毕之后,通过os.close()、is.close()和socket.close()来关闭输出输入流并关闭Socket端口,怎么写作器停止Socket通信.网络客户端终端作为接收数据的客户端,首先用Socket socket等于null在终端创建一个Socket,然后设置Socket通信的怎么写作器的IP地址和通信端口socket等于new Socket("192.168.1.101",8888),成功与怎么写作器建立连接后,用InputStreamReader创建输入流,之后通过BufferedReader读取出来,进行解析并显示在用户端界面上,数据接收完毕后,通过BufferedWriter写入接收完毕信息并通过OutputStreamWriter发送至怎么写作器,通信完毕后,通过os.close()、is.close()、socket.close()关闭输入输出流,并关闭Socket端口,至此整个Socket通信完成.

由于怎么写作器发送的是解码后的图片数据,因而客户端接收到的数据流可以组成一幅图片[5-6].通过Android提供的BitmapFactory.decodeByteAllrayO函数,可以从接收到的数据流中得到Bitmap格式的对象.后文的处理皆针对此Bitmap对象进行.

为了实现监控画面的显示,需继承View类,重写了onDraw()方法.其中,在onDraw()方法中所实现的内容,将在客户端界面上显示出来.定义一个Bitmap对象,此对象将在画布中绘制出来.当负责接收图片的线程接收到新的图片数据时,将数据传给该对象,并在线程中调用postlnvalidate0方法,重绘画面.为了系统实现更好的显示效果,本设计采用了双缓存机制.显示的画面存储在原先对象中,而接收的画面存储在变量另一对象中.如果网络状况不好,并不能及时接收到新的数据,使得另一对象为空,则原先的变量不更新,还将显示之前的画面,这样处理将在一定程度上提高用户体验,减少网络状况不好情况下的突发性黑屏.

基于Android平台的移动视频监控系统开发参考属性评定
有关论文范文主题研究: 关于软件设计的论文范本 大学生适用: 硕士学位论文、电大论文
相关参考文献下载数量: 51 写作解决问题: 本科论文怎么写
毕业论文开题报告: 论文模板、论文前言 职称论文适用: 核心期刊、初级职称
所属大学生专业类别: 本科论文怎么写 论文题目推荐度: 优质选题

根据Android的GUI系统,能够实现远程视频实时监视的用户界面,并提供和用户之间的交互接口.Ja和C语言框架共同组成了GUI系统,此系统对下层通过调用显示输入、输出设备的驱动,将Android的软件系统和底层的硬件联系起来;此系统对于上层提供了Ja层次的绘图接口,Android的Ja框架层调用这些接口来构建各种UI元素.此外,Ja也可以调用绘图接口.

4.系统测试

在无线wifi覆盖的区域内,在联想y460(win7旗舰版sp1)、三星galaxy nexus(4.2.2)、Tp-link TL-WR740N等智能手机上,对本监控系统进行了现场测试.结果表明,整个系统运行稳定,连接图像速度快,在较高图片质量的情况下保证了稳定流畅的帧率,达到了预期设想的效果.因此,该系统具有十分广阔的应用前景.