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

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論