`
muyu114
  • 浏览: 129632 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

一种基于Android智能手机的远程视频监控的设计

阅读更多

一种基于Android智能手机的远程视频监控的设计[图]


摘要:为了实现移动视频监控,提出了一种基于智能手机的远程视频监控系统。介绍了监控系统的体系结构和硬件平台,阐述了嵌入式操作系统Android 应用程序的开发方法,并结合实际的应用系统,重点论述了Android 平台上视频监控客户端的设计思路。移植了音视频解码库FFmpeg 进行H. 264 视频解码,并采用OpenGL ES 实现实时视频显示。在无线局域网络的环境下对视频监控终端进行测试,达到了利用手机进行移动视频监控的目的。

随着多媒体技术、视频压缩技术以及网络传输技术的发展,视频监控正朝着数字化、网络化、智能化方向持续发展,并越来越广泛地渗透到政府、教育、娱乐、医疗等领域。目前大部分的网络视频监控系统是基于WEB服务器的, 监控终端为PC机,用户使用浏览器获取监控服务。由于互联网接入地点的限制,普通的网络视频监控无法满足用户在任何时间、任何地点获取监控信息的需求。

本文介绍了一种以Android 智能手机为终端的视频监控系统,该系统将传统的视频监控与移动多媒体技术相结合,真正实现了移动视频监控。

1 系统的结构

本文中的视频监控系统采用C/S 体系结构。

如图1 所示,该系统由视频采集端( 摄像头),视频服务器以及监控客户端等构成。

图1视频监控系统总体结构

视频服务器是整个系统的核心部分,它将摄像头采集到的原始模拟信号转换为数字信号,并对视频数据进行编码压缩,最后通过Internet 将压缩后的数据传送至客户端。客户端通过TCP/IP协议访问服务器,通过对视频数据的接收、解码以及显示,实现实时预览功能。客户端也可以根据用户需求发送控制命令,实现对前端设备的控制操作,如云台控制等。

服务器部分采用Hi3515 处理器芯片为硬件平台,并移植了嵌入式操作系统Linux 作为整个系统运行的软件环境。Hi3515 是一款基于ARM9 处理器内核以及视频硬件加速引擎的高性能通信媒体处理器,具有H. 264 和MJPEG 多协议编解码能力。

本文以基于Hi3515 的远程视频监控系统为例,重点介绍了Android 平台上监控客户端的设计过程。

2 Android 开发介绍

Android 是基于Linux 开放性内核的操作系统,是Google公司在2007 年11 月5 日公布的手机操作系统。Android 采用软件堆层的架构,主要分为三部分:底层以Linux 核心为基础,提供基本功能;中间层包括函数库和虚拟机;最上层是各种应用软件。

Android 平台显着的开放性使其拥有众多的开发者,应用日益丰富,不仅应用于智能手机,也向平板电脑、智能MP4 方面急速扩张。

Android 应用程序用Java 语言编写,每个应用程序都拥有一个独立的Dalvik 虚拟机实例,这个实例驻留在一个由Linux 内核管理的进程中。Dalvik支持Java Native Interface(JNI)编程方式,Android 应用程序可以通过JNI 调用C/ C++开发的共享库,实现"Java+C冶的编程方式。开发Android 应用程序最简捷的方式是安装Android SDK 和Eclipse IDE.

Eclipse 提供了一个丰富的Java 环境,Java 代码通过编译后,Android Developer Tools 会将它打包,用于安装。

3 监控客户端的设计与实现

基于Android 平台的监控客户端的总体框架如图2 所示,分别由网络通讯模块、视频解码模块以及视频显示模块等构成。其中网络通讯模块接收来自服务器的所有数据,对数据进行解析,并将视频数据存入到视频缓冲区。视频解码模块负责从视频缓冲区中读取数据并送入H. 264 解码器进行解码。最后,采用OpenGL 图形库将解码后图像绘制到屏幕上实现视频播放。

图2客户端总体框架。

3. 1 H. 264 视频解码器的实现

在网络视频监控系统中,视频的编码压缩是非常必要和关键的工作,没有经过压缩的海量数据对网络传输系统来说是无法承受的[7] .H.264是目前最先进的视频压缩算法,它由视频编码层VCL 和网络提取层NAL 两部分组成。其中,VCL 进行视频编解码,包括运动补偿预测、变换编码和熵编码等;NAL 采用适当的格式对VCL 视频数据进行封装打包。H.264 标准对编码效率和图像质量进行了诸多改进,且抗丢包性能和抗误码性能好,适应各种网络环境,非常适合于对压缩率要求高,网络环境复杂的移动视频监控。

客户端接收的数据是经过H.264 编码压缩后的数据,需要经过H.264 解码还原视频图像后才能够显示,因此,H.264 解码器是客户端的关键部分。这里移植了开源的音视频解码库FFmpeg 进行H.264 解码。在Android 应用程序中使用FFmpeg 的步骤如下:

(1)在Linux 环境下安装Android 原生开发工具包NDK.

(2) 创建jni 文件夹,将FFmpeg 工程复制到文件夹下。创建H264Decoder. c 源文件,提供Android程序使用的接口函数,文件需要包括JNI 的操作头文件<jni. h >, 且函数名有固定的形式, 如com_ipcamera_PreView_H264Decoder 表示com_ipcamera包下面PreView 类中H264Decoder 函数。

(3)创建Android. mk 文件,该文件包含正确构建和命名库的MakeFile 说明。分别在LOCAL_SRC_FILES 和LOCAL_C_INCLUDES 项中添加编译模块所需源文件和头文件目录。

(4)执行NDK 开发包中的ndk鄄build 脚本,生成对应的。 so 共享库,并复制到Android 工程下的libs/armeabi 目录下。

(5) 在Android 程序中通过System. loadLibrary("库名称冶)加载所需要的库,加载成功后,应用程序就可以使用H264Decoder 函数进行H.264 的解码。

3. 2 OpenGL ES 绘图

为了提高绘图的效率,客户端使用OpenGL ES实现视频图像的显示。OpenGL ES 是一个2D/3D轻量图形库,是跨平台图形库OpenGL 的简化版。

OpenGL ES 专门针对手机、PDA 和游戏主机等嵌入式设备而设计,目的是为了充分利用硬件加速,适合复杂的、图形密集的程序。

Android 中使用GLSurfaceView 来显示OpenGL视图,该类继承至SurfaceView 并包含了一个专门用于渲染3D 的接口Renderer,主要通过实现ON鄄DrawFrame、onSurfaceChanged 以及onSurfaceCreated等方法构建所需的Renderer.解码器解码一帧图像后,调用GLSurfaceView 的requeSTRender 方法通知OpenGL ES 完成视频图像的显示。使用OpenGL 绘图的核心代码如下:

3. 3多线程设计

视频数据的接收和解码都是复杂、持续的过程,如果其中一个过程出现阻塞会影响整个程序的运行,因此,客户端使用多线程实现数据接收和视频解码的并行处理。在整个程序运行过程中,主线程响应用户操作,负责屏幕刷新工作,并创建两个子线程:数据接收和视频解码子线程,处理过程如图3 所示。

图3子线程处理流程。

在Java 中, 多线程的实现有两种方式: 扩展java. lang. Thread 类或实现java. lang. Runnable 接口。这里通过继承Thread 类并覆写run()方法实现两个子线程。在多线程的应用中关键是处理好线程之间的同步问题,以解决对共享存储区的访问冲突,避免引起线程甚至整个系统的死锁。Java 多线程主要利用synchronized 关键字和wait( )、notify( ) 等方法实现线程间的同步。

4 结束语

目前,该系统已经在实验室进行测试,服务器输出15fps CIF 格式的H. 264 视频数据,客户端安装在Android 手机上,通过WIFI接入无线局域网中与服务器建立连接,用户界面如图4 所示,可实现远程视频预览、云台控制等操作。

图4 监控客户端

随着3G时代的到来,数据传输速度有了大幅提升,为移动实时视频业务的实现创造更好的条件。

手机用户可以直接接入3G 网络访问视频监控服务器,实现移动在线的实时视频监控。由此可见,手机视频监控市场潜力巨大,具有很好的发展前景。

转自:http://tech.c114.net/167/a678229.html

分享到:
评论

相关推荐

    基于Android智能手机的远程视频监控的设计

    摘要:为了实现移动视频监控,提出了一种基于智能手机的远程视频监控系统。介绍了监控系统的体系结构和硬件平台,阐述了嵌入式操作系统Android 应用程序的开发方法,并结合实际的应用系统,重点论述了Android 平台上...

    一种基于Android智能手机的远程视频监控的设计* (2011年)

    为了实现移动视频监控,提出了一种基于智能手机的远程视频监控系统。介绍了监控系统的体系结构和硬件平台,阐述了嵌入式操作系统Android应用程序的开发方法,并结合实际的应用系统,重点论述了Android平台上视频监控...

    行业文档-设计装置-一种基于Android平台的远程监控智能电站.zip

    行业文档-设计装置-一种基于Android平台的远程监控智能电站

    嵌入式系统/ARM技术中的基于Android智能手机的远程视频监控的设计

    摘要:为了实现移动视频监控,提出了一种基于智能手机的远程视频监控系统。介绍了监控系统的体系结构和硬件平台,阐述了嵌入式操作系统Android 应用程序的开发方法,并结合实际的应用系统,重点论述了Android 平台上...

    基于Android和Pachube的智能家居远程监控系统设计

    设计了一种可远程控制的智能家居监控系统,采用XBee模块组成ZigBee网络传输智能家居控制网络,由Netduino plus搭建的家庭网关实施控制,Android远程控制端通过Pachube对网关进行访问。该系统组网方便,能通过手机...

    煤矿主要通风机远程无线监控系统设计

    针对因煤矿主要通风机房位置偏僻且有线网络不易覆盖等造成的主要通风机监控系统易沦为"信息孤岛"的问题,提出了一种基于移动平台的煤矿主要通风机远程无线监控系统设计方案。该系统采用GPRS DTU模块与现场PLC通信,...

    基于Android的WiFi单片机连接水位检测程序.zip

    《基于Android的WiFi单片机连接水位检测程序》是一款专为水位监测而设计的应用程序,旨在通过智能手机远程实时监控水位情况。该系统利用WiFi单片机作为传感器节点,部署在需要监测水位的区域,如水库、河流或水箱等...

    无线视频监控系统设计毕业设计.docx

    本课题研究的是网络摄像机的一种新型监控管理软件的设计,其中网络摄像机由STC89C52单片机结合3G路由器、USB摄像头以及舵机组成,其视频数据通过3G路由器的WiFi功能实时转发,然后编写一款Android客户端视频监控...

    基于Android平台的煤矿井下电力谐波监测系统研究

    论文设计了一种基于Android手机平台的煤矿井下电力谐波实时监测系统方案,研制了基于ARM Cortex-M3内核的32位处理器STM32F103VBT6和μC/OS-II嵌入式实时操作系统的谐波监测节点,通过节点外扩的Zig Bee和GPRS传输模块,...

    网灵移动视频监控PC版 v3.3.5.zip

    软件通过了360、瑞星等权威安全认证,稳定可靠,适用于广大中小企业或个体店主 打造一种高性价比、超实用的远程视频监控方案。 用户如果安装了网灵移动视频监控,如视频采集卡,数字硬盘录像机(DVR),以及...

    基于Android的药材管理系统.zip

    基于Android的药材管理系统是一款智能化的药材管理应用程序,它可以帮助药材种植、加工、销售等企业快速地管理药材的生产、加工、销售等信息,提高药材的质量和管理效益。 该应用程序具有以下主要功能: 药材种植...

    基于STM32+华为云设计的智慧农业灌溉系统-源码包.zip

    本项目设计一种基于STM32的智慧农业监测系统。该系统能够检测空气温度、湿度、光强度和土壤湿度等关键指标,并自动调节浇水量,实现作物生长环境的精细化管理。同时,本项目还支持本地LCD屏幕数据显示和通过ESP8266...

    物联网专业课程设计:温室监控系统——上位机服务端

    同时,为了便于用户使用远程移动终端监控,本次设计还将开发一种基于Android 的便于操作监控的APP 应用软件,该软件能实现对服务端转发数据的实时显示,并通过轻型数据库在用户设备上进行存储,方便用户进行查看。

    农机监控调度系统的设计与实现 (2010年)

    针对目前农机作业中信息发布滞后、农机资源调度不合理、效率低下等问题,提出一种基于地理信息系统(GIS)、通用分组无线业务(GPRS)及全球定位系统(GPS)技术的农机监控调度系统,运用GPRS数据传输技术和GIS组件...

    使用Android GPS监控别人行踪的测试实例

    一个Android GPS定位的应用实例,在Android智能机中监控别人行踪,一般这是隐私,不允许这样跟踪别人行踪,除非是有为照顾筷家人而开通此种应用,请不要干违法的事情。在Google Search的Google.java中,有杀不死的...

    基于ARM与ZigBee的家庭安全监控系统的设计

    为了实现家居安全、环境信息的远程实时监控,设计了一种基于ARM与ZigBee技术的家庭安全监控系统。该系统以CC2530芯片采集温度、烟雾、CO浓度等传感器信息,并通过ZigBee无线网络将采集的节点数据传输到ARM服务器,ARM...

    Viewback:一种远程监控视频游戏测试的工具

    Viewback - 一种视频游戏设计工具 Viewback 是一款面向游戏设计师的数据可视化工具。 它将调试信息从您的游戏转发到您的无线设备,以便在开发和可用性测试期间查看。 您可以查看游戏内部状态的变化、即时调试问题...

    gps和基站两种方式实现远程地图定位

    断断续续搞了两个多月,终于实现了android手机通过短信拦截进行远程定位,支持android4.4哦,受控手机的服务可以开机自启动,防止进程和服务被杀死,哈哈,有点儿像个流氓软件,不过方便家里老人和小孩使用哦!...

    Android平台i-Jetty服务器在智能家居中的应用研究

    针对智能家居系统架构复杂、开发难度较大等问题,提出了一种基于Android平台嵌入式Web服务器i-Jetty的智能家居系统方案。在ARM硬件平台及Android软件平台上,采用i-Jetty服务器实现了家居环境信息网络远程监控功能。...

    Android终端及FPGA控制的智能家居系统

    设计并实现了一个以Android手机作为遥控终端及FPGA为主控中心的智能家居系统,该系统利用蓝牙进行通信,应用多种传感器,实现视频监控、学习型红外遥控、温湿度采集、振动检测以及GSM远程报警等功能,从而满足用户的...

Global site tag (gtag.js) - Google Analytics