隨著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)GlobalPositioningSystemFixData(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內,在可以接受的范圍之內。
圖3PC端監控軟件界面
視頻顯示
根據前端視頻采集的兩套方案,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、圖片、視頻的采集和上傳,后端可進行遠程控制、視頻監控和定位,并通過電子地圖顯示前端的實時位置和歷史運動軌跡。本系統有機結合了計算機多媒體技術和移動互聯網技術,可以應用于多種行業的具體業務之中,可提高業務的信息化程度和人員的工作效率。
本文的設計思路可廣泛用于車載監控、無線視頻監控、城管執法等等領域,具有較廣泛的實用價值和推廣的意義。
評論