随着3G/4G移动通信网络和计算机技术的快速发展,移动互联网从很多方面改善了人们传统的生活方式,3G/4G移动网络具有带宽宽、广域广、高安全性等突出特点,能够突破安防行业长距离数字化无线监控一直以来难以简单实现的瓶颈,为无线视频监控开辟了一条新的道路。
本文设计的一种移动视频监控及定位系统,采用S3C6410处理器作为硬件基础,以Mediastream、Live555、VLC开源项目为核心,3G/4G移动通信网络作为网络传输媒介,采用H.264编解码方式实现视频的采集传输播放,并集成GPS模块进行位置数据的采集、传输、显示,实现移动目标的视频监控、定位功能,该系统的前端硬件设备小巧,易于使用。
系统原理
系统框图
如图1所示。
图1 系统框图
工作原理
系统前端采用S3C6410处理器为核心处理器,包括了摄像头、GPS模块、传输模块,提供了一个具有低成本、低功耗,高性能的应用处理器解决方案。它包含一个集成的多格式编解码器( MFC )支持MPEG4/H.263/H.264编码、译码以及VC1的解码。前端采用Mediastream开源项目从摄像头采集数据,然后S3C6410处理器使用其硬件编解码器将采集到数据编码成H.264视频流,发送到中转服务器,中转服务器使用Live555开源项目对视频流进行转发,最后在PC端使用VLC播放器进行解码播放,整个过程实现了视频采集、编码、传输、解码和播放功能。
前端通过嵌入式程序将GPS模块采集到的位置数据进行处理后,提取出其中的经纬度数据,利用Socket发送到PC端软件,PC端软件使用电子地图实时显示移动前端所在的地点,实现对移动目标的实时定位和监控功能,并记录其轨迹。
网络传输模块则使用通过USB接口连接到开发板上的3G上网卡连接3G网络,通过在前端脚本软件启动拨号上网,开启数据传输通道。
前端软件设计
GPS数据采集
数据采集
硬件设备采用的是S3C6410开发板,使用串口将GPS模块与开发板相连接,设定好串口相关参数后便可以从串口中读出实时的GPS数据。
图2 前端硬件
数据处理
从串口中读取出来的GPS数据是标准的GPS数据,数据格式之一如下:
(1)Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh
<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空
可以看出,从串口中读出的GPS数据包含的信息量非常大,需要从其中提取出有用的部分进行处理才能得到想要的经纬度数据。
考虑到实际运行可行性,每1.5秒从串口读取一次数据,编写一个函数从数据中提取出关键的经纬度数据。
数据发送
经过处理得到经纬度数据之后,通过Socket将经纬度数据发送到PC端进行显示。Socket分为客户端和服务器端,可以根据实际的需要在前端使用Socket客户端或者服务器端。在知道服务器域名或者IP地址的情况下可以采用服务器端建立Socket服务器,前端通过Socket客户端去连接Socket服务器并发送数据。在给前端做域名绑定之后,前端也可以建立Socket服务器,在PC端建立Socket客户端来访问前端的Socket服务器来获取GPS数据。相比之下,在PC端建立Socket服务端口监听前端的Socket客户端连接的方案更加实用,在多客户端的情况下,便于管理,不需要对前端进行域名绑定。
视频采集
视频采集方案有两套:
(1)开源项目Linphone中的Mediastream,这是一款点对点采集传输的视频采集方案,从摄像头采集到图像后能进行常用的MJPEG、H.263、H.264等编码进行视频压缩,其优点是支持多种视频压缩方式,能根据网络状况挑选适宜的编解码方式来进行视频压缩传输及播放。
(2)开源项目mjpg-streamer,从摄像头采集到图像后使用.jpeg格式进行压缩,传送到前端后可在网页,插件,播放器中进行播放观看,其优点是采用jpeg图像压缩,网络好的情况下图像清晰,并且支持多种播放方式。
PC端软件设计
PC端系统包含以下几个部分:电子地图,视频显示及PC端界面三个部分。
电子地图
使用网络电子地图对GPS数据进行定位显示。在网络上的几种常见地图中选择谷歌地图作为显示地图。谷歌地图提供了一套成熟的JavaScript的API,根据其提供的API实现实时的定位显示以及历史轨迹的回放功能。由于GPS提供的数据与实际地图定位存在一定误差,在进行数据处理时还加入了一个校正算法对数据进行修正,修正后的结果与实际结果误差在10m内,在可以接受的范围之内。
图3 PC端监控软件界面
视频显示
根据前端视频采集的两套方案,PC端的视频显示对应也有两套方案如下:
(1)Mediastream+Live555+VLC,其中Mediastream负责视频的采集及传输,Live555负责进行视频流的转发,VLC进行视频的播放。Mediastream是一种点对点的传输,双方商定好端口之后进行传输及播放,但是VLC播放时使用的是RTSP流,还有RTSP的控制协议,因此采用Live555进行一个中间的转发,将Mediastream采集的视频流发送到Live555,Live555将视频流打包成RTSP流,然后使用VLC进行播放。
(2)使用MJPEG开源项目自带的播放控件及方式,可以在网页及VLC中进行播放显示。
以上两种方案都可以使用VLC进行播放,于是可以在网页中内嵌VLC的控件进行视频显示,电子地图和视频都可以在网页中进行展示了。
PC端界面
使用C#语言编写,将Socket服务器,地图显示以及视频显示综合在一个界面里边。Socket服务器接收到GPS数据后,存放在一个XML文件中供回放历史轨迹时使用。
系统运行情况
前端硬件如图2所示。
PC端监控软件实现的界面如图3所示。
采用不同方案进行对比,测试的数据见表1,分析表1,可见:
(1)终端和PC端均为局域网条件时,Mediastream对传和Mediastream+Live555+VLC效果均不错
(2)终端和PC端均为3G时,Mediastream对传和Mediastream+Live555+VLC效果都不好,丢包严重,Mediastream对传效果基本上决定Mediastream+Live555+VLC的效果,PC端下行速率只有100多kbps,明显少于终端上行速率
(3)Mediastream对传比Mediastream+Live555+VLC延迟小1-2秒,在PC端运行Live555比在终端运行延迟小约1秒,
(4)终端使用3G运行Mediastream+Live555,PC端使用局域网用VLC访问时(由于外网数据不能主动发送到内网,只能这么运行),CIF格式效果还不错,有些许延时,当设置比特率达到512kbps时,效果变差,不稳定,视频出现断续现象。VGA格式效果在384kbps左右时运行效果还可以,但运行不稳定,在其它比特率下运行,效果均不好。主观感觉CIF下的视频效果并不明显差于VGA。
结束语
本文设计并实现的移动视频监控及定位系统,前端可实现GPS、图片、视频的采集和上传,后端可进行远程控制、视频监控和定位,并通过电子地图显示前端的实时位置和历史运动轨迹。本系统有机结合了计算机多媒体技术和移动互联网技术,可以应用于多种行业的具体业务之中,可提高业务的信息化程度和人员的工作效率。
本文的设计思路可广泛用于车载监控、无线视频监控、城管执法等等领域,具有较广泛的实用价值和推广的意义。