一種移動視頻監(jiān)控及定位系統(tǒng)的設計
可以看出,從串口中讀出的GPS數據包含的信息量非常大,需要從其中提取出有用的部分進行處理才能得到想要的經緯度數據。
本文引用地址:http://www.ex-cimer.com/article/203229.htm考慮到實際運行可行性,每1.5秒從串口讀取一次數據,編寫一個函數從數據中提取出關鍵的經緯度數據。
數據發(fā)送
經過處理得到經緯度數據之后,通過Socket將經緯度數據發(fā)送到PC端進行顯示。Socket分為客戶端和服務器端,可以根據實際的需要在前端使用Socket客戶端或者服務器端。在知道服務器域名或者IP地址的情況下可以采用服務器端建立Socket服務器,前端通過Socket客戶端去連接Socket服務器并發(fā)送數據。在給前端做域名綁定之后,前端也可以建立Socket服務器,在PC端建立Socket客戶端來訪問前端的Socket服務器來獲取GPS數據。相比之下,在PC端建立Socket服務端口監(jiān)聽前端的Socket客戶端連接的方案更加實用,在多客戶端的情況下,便于管理,不需要對前端進行域名綁定。
視頻采集
視頻采集方案有兩套:
(1)開源項目Linphone中的Mediastream,這是一款點對點采集傳輸的視頻采集方案,從攝像頭采集到圖像后能進行常用的MJPEG、H.263、H.264等編碼進行視頻壓縮,其優(yōu)點是支持多種視頻壓縮方式,能根據網絡狀況挑選適宜的編解碼方式來進行視頻壓縮傳輸及播放。
(2)開源項目mjpg-streamer,從攝像頭采集到圖像后使用.jpeg格式進行壓縮,傳送到前端后可在網頁,插件,播放器中進行播放觀看,其優(yōu)點是采用jpeg圖像壓縮,網絡好的情況下圖像清晰,并且支持多種播放方式。
PC端軟件設計
PC端系統(tǒng)包含以下幾個部分:電子地圖,視頻顯示及PC端界面三個部分。
電子地圖
使用網絡電子地圖對GPS數據進行定位顯示。在網絡上的幾種常見地圖中選擇谷歌地圖作為顯示地圖。谷歌地圖提供了一套成熟的JavaScript的API,根據其提供的API實現實時的定位顯示以及歷史軌跡的回放功能。由于GPS提供的數據與實際地圖定位存在一定誤差,在進行數據處理時還加入了一個校正算法對數據進行修正,修正后的結果與實際結果誤差在10m內,在可以接受的范圍之內。
視頻顯示
根據前端視頻采集的兩套方案,PC端的視頻顯示對應也有兩套方案如下:
(1)Mediastream+Live555+VLC,其中Mediastream負責視頻的采集及傳輸,Live555負責進行視頻流的轉發(fā),VLC進行視頻的播放。Mediastream是一種點對點的傳輸,雙方商定好端口之后進行傳輸及播放,但是VLC播放時使用的是RTSP流,還有RTSP的控制協議,因此采用Live555進行一個中間的轉發(fā),將Mediastream采集的視頻流發(fā)送到Live555,Live555將視頻流打包成RTSP流,然后使用VLC進行播放。
(2)使用MJPEG開源項目自帶的播放控件及方式,可以在網頁及VLC中進行播放顯示。
以上兩種方案都可以使用VLC進行播放,于是可以在網頁中內嵌VLC的控件進行視頻顯示,電子地圖和視頻都可以在網頁中進行展示了。
PC端界面
使用C#語言編寫,將Socket服務器,地圖顯示以及視頻顯示綜合在一個界面里邊。Socket服務器接收到GPS數據后,存放在一個XML文件中供回放歷史軌跡時使用。
系統(tǒng)運行情況
前端硬件如圖2所示。
c語言相關文章:c語言教程
評論