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