基于GIS与Android的移动视频技术研究

时间:2022-09-20 02:02:41

基于GIS与Android的移动视频技术研究

摘要:介绍了当前视频GIS系统发展的状况,研究分析了基于gis的视频编解码及传输、空间信息与视频信息的结合等技术。在此基础上设计了一个基于android平台的远程移动视频GIS系统。详细论述了系统的总体构架、工作原理,主要功能及系统实现的关键技术等,最后分析了系统存在的不足和今后研究的方向。

关键词:Android;H264视频流;RTP协议;移动视频GIS;GPS

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)01-0159-04

Research on the Mobile Video Technology Based on GIS and Android

LIN Xia, CHEN Yi-hua

(School of Resource and Environment Engineering, Hefei University of Technology, Hefei 230009, China)

Abstract: This paper introduces the current situation of the development of the video GIS system. Then the technology of video encod? ing, decoding and transmission and the method of combination of spatial data and video data are analyzed. On this foundation, a remote mobile video GIS system based on the Android platform is proposed. The architecture, working principle, main function and key tech? niques of system are discussed. Eventually, the defects existed in system is analyzed and the future research direction of mobile video system is summarized.

Key words:android; H264 video; RTP protocol; mobile video GIS; GPS

随着地理信息(GIS)系统迅速地发展和广泛应用,与多媒体数据尤其是视频数据结合的GIS无论在效果还是表现力上都比传统的GIS有着天然优势。国外在这方面的研究比较早,Berry(2000)提出了视频地图系统,即在视频的一个声道中记录精确的位置和事件数据,并提出数据的外业采集、内业处理与实际应用方案。[1]Navarrete& Blat (2002)在VideoGIS项目中通过建立视频片段的地理索引,来将视频影像和地理信息相结合。[2]国内也有过相关研究:孔云峰(2007)在一个公路视频GIS项目中,实现了视频和地图的同步播放和交互查询。[3]丰江帆和张宏(2007)在视频直播系统项目中,融合了GPS和视频数据,实现了基于位置的视频直播系统。[4]宋宏权(2010)用Adobe Flex技术,成功设计和实现了基于Web的视频GIS系统,把视频GIS研究又向前发展了一步。[5]

如今,随着网络通信技术的成熟和广泛应用,尤其是3G网络的普及,基于网络多媒体的视频地理信息系统已然蓬勃发展,并且日渐成熟。目前比较流行的一种做法,是把视频数据传输到服务器端,然后在服务器端通过手工处理音频通道或建立视频影像元数据记录空间位置信息,来实现地理空间信息与视频信息的同步。另一种做法是把GIS技术应用到视频监控系统中,实现位置信息与视频信息的同步。近几年来,随着智能手机和云服务的普及应用,可以预见,基于手持移动端的移动视频地理信息系统将会成为未来的研究热点。

本文将从网络多媒体角度,利用GIS和视频处理技术,设计了基于Andriod平台的远程移动视频地理信息系统,对系统的主要内容及关键技术进行了详细的分析。

1系统设计与分析

1.1系统总体架构设计

移动视频地理信息系统由手持移动终端、无线通信、Web服务器和基于GIS的视频接收终端几个主要部分组成,系统构架见图1所示。

图1系统架构图

系统工作原理为:手持移动终端通过Android手机内置的GPS芯片通过定位卫星获取当前GPS坐标(经度和纬度),与手机采集 的视频实时同步编码,通过无线通信网络发送给视频接收终端。视频接收终端接受到手持移动终端发来的数据后,经过解码,一边实时显示视频数据,一边将GPS坐标与地图上的坐标进行匹配,在地图上动态显示移动端当前位置。从而实现在视频接收终端观看移动端视频的同时,同步地在地图上显示移动端的当前位置和周围环境状况。此外,在手持移动端和视频接收终端,都可以地图进行查询和空间分析操作,方便此系统在各个领域中对特定应用需求的扩展应用。

1.2系统功能设计

移动视频GIS系统设计的主要作用是为了适应当今网络通讯技术特点,特别是WIFI和3G网络的普及前提下,利用先进的视频技术、网络传输技术结合GIS技术,提供移动用户更清晰、高质量的实时视频通信的同时,支持强大的空间查询和分析能力,增强用户体验。

本系统的核心数据是视频和空间数据。要实现移动端实时视频采集和显示,系统需要分模块对视频数据进行采集、编码、传输、解码、存储和显示等处理。系统要丰富用户体验和增强数据多样性,需要将视频和空间位置信息融合,再在基本电子地图功能的基础上,用GIS定制空间分析功能。由于不同移动用户可以和不同视频接收终端进行通信,因此系统需要针对不同用户进行信息管理。系统功能结构如图2所示。

2系统实现

2.省略平台利用ArcGIS Engine组件开发;Web服务器端利用ArcGIS Server地图和相关服务,以供手持移动端调用。

2.2视频编码格式与传输协议

从手机硬件和无线通信技术特点出发,为了同时保证视频的清晰度和流畅性,必须选择一个先进的视频编码格式和合适的传输协议。本系统采用H.264标准作为视频压缩标准,采用RTP协议作为传输协议,在技术选择上保证视频流的容量小、高保真、快速传输,从而实现视频的实时清晰播放。H.264是国际组织新制定的视频编码标准,具有高压缩比、码率低;图像质量高、容错能力强;网络适应性强;应用范围广等优点,是现代视频通信的首选格式。实时传输协议RTP是用于Internet上针对多媒体通信制定的一种传输协议,详细说明了音视频的标准数据包格式,相对于其他协议更强调实时性。经过在WIFI网测试,本系统能理想地通过RTP协议以H.264格式传输视频,到达实时观看移动视频的效果。

2.3视频数据与GPS信息实时编码

为使视频多样性和提高编码速度,系统中采用JNI(Java native Interface)技术调用移植到Android平台的第三方组件FFmpeg sdk来实现视频流和GPS信息的同步编码。FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,提供了录制、转换以及流化音视频的完整解决方案。视频编码时,使用脚本命令来存储实时GPS信息。脚本命令包括索引、脚本类型、脚本内容。这样当摄像头每获取一帧并进行编码时,就在编码中添加一条脚本命令,从而实现视频数据和GPS信息的融合。

2.4数据传输

H.264视频流要通过RTP进行传输,这要求H.264视频数据需要根据RTP规范封装成数据包。采用简单的打包方案,把H.264的NALU放入负载中,配置RTP包头的一系列参数,从而形成一个完整地RTP数据包,通过网络发送给视频接收端。其流程分为两部分:(1)移动端发送数据。其流程简单归纳为:初始化RTP结构、创建RTP套接字、开启上下文会话;(2)视频接收终端接受数据。其流程为:建立数据接收缓冲区、从socket端读取数据到缓冲区、从缓冲区读取RTP报文到指定位置。

2.5数据解码

视频接收终端接受到的数据是RTP包数据,因此要经过一些列的拆包、组包、解码之后才能进行播放。具体流程为网络接收线程从网络接口读取数据流,把其放入接受缓冲区中,有可能需要RTP包时序处理。接着经解码线程从“接收缓冲区”中拆包处理后,将数据读取到“视频帧缓冲区”中,可能需要组包处理。此时,再用GPS线程把GPS信息读取后直接在地图上高亮显示出来。同时,为了消除抖动,再把数据放到环形缓冲区中处理。然后当解码器资源充足时,解码线程就从环形缓冲区中读取数据进行解码,否则 进行丢包处理。经解码器解码后,将得到yuv420格式视频流,转化为RGB格式后,再放入到“显示缓冲区”中,最终播放器从“显示缓冲区”中读取视频流播放。

本系统采用在windows下对FFmpegsdk二次开发实现H. 264视频流的解码和实时播放。系统数据流程图如图3所示。

2.省略平台下用ArcEngine进行二次开发。

图4为带GPS的手持移动终端采集视频并实时传输的用户界面,当移动用户登录后,就可通过设置IP地址和端口与指定视频接收终端连接,按下“录制”按钮,就开始发送实时采集的视频与GPS信号,实现视频通信。

图5为视频接收终端实时显示视频并定位到移动端GPS位置的用户界面。图中正在对合肥工业大学主教附近进行视频采集。

3系统实现相关技术

3.1 JNI + NDK技术

Android的上层应用是用Java写的,底层媒体库是用C语言写的。为了摈弃Java语言效率低的缺点,本系统采用JNI(Java native interface)+NDK(Native Development Kit)的技术,直接对底层库进行操控,以提高视频采集和编解码的效率。NDK提供了一些列的工具集,帮助Android开发者快速开发动态库,并能自动将动态库和java应用一起打包成安装包文件。JNI允许Java代码和其他语言编写的代码进行交互。在Android中提供JNI的方式,让Java程序可以调用C语言程序。本系统移动端,网络传输和编码模块都采用了JNI + NDK技术。

3.2 RTP封包处理

为了达到实时的效果,系统采用了H.264视频标准编码和RTP协议来传输视频数据。H.264编码器支持的视频流格式是YUV(Android视频采集默认的生成格式),其压缩系统包括视频编码层(VCl)和网络提取层(NAL),分别负责实现视频数据压缩编码和解码和对视频数据进行封装打包后使其在网络中传送。H.264数据的RTP封包实质就是先配好RTP数据分组头部,再把NALU(网络提取层单元)打包进RTP的负载中,从而通过RTP协议传输。本系统先定义了RTP协议的相关数据结构:数据报文结构、头部结构、头扩展结构、同部源结构和RTP会话上下文结构,再用打包算法把已生成的H.264视频负载到RTP数据包中。打包的常用算法有:固定包长打包算法、面向实时流媒体的混合模式打包算法、基于NALU大小的单个或者分割打包算法等。方法各有优缺点,因此要根据系统需求,选择合适的算法。本文鉴于Android系统性能的考虑,使用了较简单的固定包长打包算法。其优点是算法简单,打包效率高;缺点是NAL单元有可能不放到同一个RTP包中,但这可以通过在视频接受端进行视频预处理解决,使视频分帧后再播放。

3.3多线程技术

多线程技术的好处在于线程之间共用内存,节省了内存;相互间的切换,由于速度快,就像多个线程同时执行一样,提高了效率。在本系统中,手持移动端和视频接收终端都用了多线程技术。在手持移动端,由于手机的CPU处理能力远不及PC机,为了保持系统性能而不出现黑屏、死机等状况,用分线程去处理那些CPU占用率高的任务。其中,用主线程完成UI界面刷新和即时功能操作的响应,如按钮的即时响应、UI界面的切换;用分线程执行CPU占用率高和耗时的工作,如视频编码、网络通讯。在视频接收终端,线程的引入是为了减少程序并发执行时所付出的时间和空间开销,使系统具有良好的并发性。从网络接收RTP包到最终播放,用了4个线程:网络接收线程、解码线程、GPS数据读取线程、视频播放线程;3个缓冲区:接收缓冲区、视频数据环形缓冲区和显示缓冲区,以使视频接收端在缓冲一段时间后流畅播放视频。

4总结

本论文研究的创新之处在于根据现代手机系统和网络通信特点,采用最新的技术,设计了一个基于Android的远程移动视频系统,融合了视频信息和空间位置信息,实现了视频和空间信息的查询和分析功能。实践表明,本文提出的基本思路和设计方案具有可行性。此外,本系统具有良好的可扩展性,可根据不同行业、领域的需求定制和扩展相应的功能,应用到如车载视频监控、森林火灾监控、视频旅游等方面。

同时,本文也只是基于一个实验性系统去探究和设计,存在着一些问题。(1)经过测试,在WIFI网络下,视频能流畅播放。但用普通网络(带宽40kb~60kb),视频则不是很流畅;(2)视频有时会出现跳跃的现象。这是由于有时RTP协议是不可靠传输协议,有时会出现丢包现象。此外,此系统没有对RTP包接受部分进行很好的失序和拥塞处理,也是导致视频不稳定因素之一;(3)移植性不佳,未实现跨平台性。基于Android的远程视频移动GIS系统应具有和不同平台环境的视频接收终端进行通信的能力,而本系统并未处理这方面的问题。

随着3G网络的成熟和普及,基于手持设备系统的视频地理信息系统将有巨大的发展空间和应用。无论是硬件设备、网络传输速度的提高,还是软件技术的发展更新,都意味着视频编解码和传输性能的提高,届时将实现真正意义上的实时的、高保真的视频播放。在下一阶段的研究中,主要有三个研究方向:(1)完善视频与空间信息相结合的模型,把GIS技术更广泛地利用到移动视频领域;(2)开发具有良好封装性和可移植性的模块功能。将视频编解码模块、网络通信模块封装得更好,提供不同数据格式的编解码接口和不同协议的封包接口,供上层应用调用;(3)针对Android系统特点的网络通信技术、编码技术、分包算法的研究和优化。

参考文献:

[1] Berry J K. Capture‘Where’and‘When’on Video-Based GIS[J].GEOWORLD,2000(9):26-27.

[2] Navarrete T, Blat J. VideoGIS:segmenting and indexing video based on geographic information[C]. 5thAGILE Conference on Geographic Information Science, Palma(Balearic Islands, Spain),April 25th-27th 2002.

[3]孔云峰.一个公路视频GIS的设计与实现[J].公路,2007(1):119-121

[4]丰江帆,张宏,沙月进. GPS车载移动视频监控系统的设计[J].测绘通报,2007(2):51-53.

[5]宋宏权,孔云峰.Adobe Flex框架中的视频GIS系统设计与开发.武汉大学学报(信息科学版),2010,35(6):743-745.

[6]魏聪颖.基于事实流媒体传输系统的H.264组包算法研究[J].计算机科学,2007,34(8):41-44.

[7]胡晓乐.基于Android平台的MID视频监控系统的设计与实现[D].广州:中山大学,2010.

上一篇:基于FMS4的P2P音视频交互技术的教学应用研究―... 下一篇:Hadoop集群公平调度算法的改进与实现