一种移动视频监控及定位系统的设计
可以看出,从串口中读出的GPS数据包含的信息量非常大,需要从其中提取出有用的部分进行处理才能得到想要的经纬度数据。
本文引用地址://www.cazqn.com/article/203229.htm考虑到实际运行可行性,每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内,在可以接受的范围之内。
视频显示
根据前端视频采集的两套方案,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所示。
c语言相关文章:c语言教程
评论