劉青



摘 要:為了實現溫室環境視頻監控的移動化和智能化,文中研究了一種基于Android的視頻監控系統。介紹了該溫室環境視頻監控系統的整體架構,闡述了視頻解碼與數據通信等關鍵技術,重點論述了視頻監控手機端Android軟件的設計方案。并在WiFi和4G兩種網絡環境下分別做了測試,測試結果表明,該系統運行穩定可靠,可實現智能手機對溫室大棚進行遠程視頻監控的目的。
關鍵詞:Android系統;智能手機;視頻監控;網絡通信
中圖分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2016)06-00-02
0 引 言
我國目前已成為世界設施作物栽培第一大國[1],特別是近來環境污染、食品安全等問題格外突出,實現溫室農作物生長過程實時監控是解決以上問題的關鍵。隨著物聯網、移動互聯網等技術的快速發展,溫室智能監控、食品溯源等系統已成為研究熱點。傳統的視頻監控系統需要復雜的綜合布線,多采用視頻服務器和遠程PC端訪問模式,具有施工難度大、價格昂貴和監控靈活度差等問題;在Android平臺的智能終端(安裝了Android視頻監控應用軟件的智能設備,以下簡稱移動端)上開發視頻監控App,使用WiFi或4G網絡,可以實現溫室環境隨時隨地的遠程監控功能。
1 系統架構設計
基于Android的溫室智能視頻監控系統采用C/S架構[2],整個系統由無線網絡攝像頭、云臺、視頻服務器(以下簡稱服務端)、無線路由器、基礎網絡和智能手機等組成,其架構圖如圖1所示。PC監控端和移動端皆可通過Internet建立連接[3];移動端在本地WiFi網絡環境下可搜索設備的ID號,通過選擇某監控設備的ID號訪問云臺,控制相應攝像頭,實現視頻的實時監控。移動端通過觸屏方式控制云臺,實現攝像頭的上、下、左、右移動,垂直90度、水平360度的移動近乎可以實現全方位監控功能[4],系統中常用攝像頭云臺控制指令見表1所列。本文重點論述移動端Android系統監控軟件的方案設計。
2 關鍵技術
視頻數據傳輸由RTP(Real-time Transport Protocol,RTP)與UDP協議共同完成,RTP協議負責控制與服務類信息傳輸,由UTP協議進行打包、分組傳輸,RTP/UTP協議流程圖如圖2所示。Android系統采用Socket機制控制TCP/IP協議實現網絡通信的可靠連接,Socket是一種跨平臺、支持異構語言的編程方式,客戶端程序使用Socket類,服務端程序使用Server Socket類[5]。移動端通過get Server IP()方法獲取服務端地址,并設置相應端口號,用戶驗證并連接成功后,服務端視頻數據采用輸入流方式進行傳入,然后使用Buffered Reader()方法讀出數據,經視頻數據編碼處理后顯示在界面上,通信結束后再調用socket.closed()方法結束通信。系統采用H.264/AVC方法進行視頻硬件編碼,H.264編碼標準能適應多種網絡如高、低寬帶,無線超窄帶寬[6],移動端數據幀解碼的方法為:int DecodeH264Frame( byteArray H264, int bFrame, byteArray yuv, int len, intArray size)。
3 系統服務端設計
系統服務端采用C#/CGI方式設計,CGI是外部應用程序與Web服務器之間的標準接口,是信息傳遞的規程。服務端實現視頻數據的采集、存儲及遠程訪問功能,通過網絡獲取視頻數據流程如圖3所示,實例HttpWebRequest類調用WebRequest Create(string requestUriString)發送網絡請求,用GetReponseStream()方法獲取Internet資源響應,實例化StreamReader類,StreamReader reader = new StreamReader(stream,Encoding.Default),讀取特定編碼數據,在Picturebox控件上顯示圖片信息,定時調用圖像處理代碼的Timer間隔在110 ms時即可實現視頻實時采集。
4 系統移動端設計
移動端程序開發環境為Eclipse+JDK+Android SDK+ADT;測試平臺為小米4LTE-CMCC+Android4.4.4。系統整體設計采用MVC架構,使用Android提供的各種API接口進行實現,主要有系統設置、用戶驗證、圖像處理、數據存儲、視頻播放等功能模塊,如圖4所示。在/res/layout目錄下實現系統界面開發,使用RelativeLayout和FrameLayout布局方式分別實現系統登錄和視頻播放界面,主要布局文件有act_main.xml、add_camera.xml、cont_device_view.xml、ved_play.xml、set_list_item.xml,布局文件等會在R.java中自動生成ID資源號,系統通過R類加以應用。在/src目錄下實現Java主程序的編寫,使用setContentView(view)方法實現布局文件的應用,使用findViewById(id)方法獲得layout 中的控件。在AndroidManifest.xml文件中可實現對Activity等系統組件的注冊,也可開啟系統訪問網絡、攝像頭等權限等,代碼如下所示:
移動端程序設計流程如圖5所示。Android系統使用searchCamera()方法搜索監控設備的ID,識別并驗證CA_USER、CA_PWD,使用CheckCameraInfo(String mac)方法驗證監控設備MAC地址;用Sstream(string , int, int)方法請求視頻數據;用Void Init()方法初始化視頻解碼;使用Bitmap getBitmap()方法進行圖片數據處理;用void onMeasure(int widthMeasureSpec, int heightMeasureSpec)實現視頻顯示比例;在void openVideo()方法中實例化Mediaplayer類,如:mMediaPlayer = new MediaPlayer(),實現視頻的播放;使用onCreate(SQLiteDatabase db) 方法創建數據庫,實現用戶信息等數據的存儲;用int Pcontrol(string, int)方法實現云臺控制,命令為第一個參數。移動端視頻監控界面如圖6所示。
5 結 語
本系統利用智能手機的便利性與Android系統平臺的開源性,研究實現了溫室監控從固定的PC端到移動端移植。在WiFi和4G兩種網絡環境下,經反復測試,視頻監控系統運行穩定可靠,延遲小。本系統研究成果可以應用到智能家居、智能交通等領域,具有應用廣泛、使用方便等特點。后期需繼續解決結合傳感器實現智能遠程報警、變焦等問題。
參考文獻
[1]張猛,房俊龍,韓雨.基于ZigBee和Internet的溫室群環境遠程監控系統設計[J].農業工程學報,2013,29(Z):171-176.
[2]劉萬輝,楊曄.基于Android系統的溫室智能監控系統的設計開發[J].軟件,2013,34(5):1-3.
[3]楊靖靖,趙榮臻,陶偉偉,等.Android平臺遠程視頻監控系統的設計與實現[J].南通大學學報,2014,13(4):7-11.
[4]孟飛,王劍峰,朱習軍.一種基于Android的智能視頻監控系統[J].青島科技大學學報,2014,35(5):524-528.
[5]魏崇毓,張菲菲.基于Android 平臺的視頻監控系統設計[J].計算機工程,2012,38(14):214-216.
[6]周曉光,翟猛,皮人杰,等.基于Android的物流視頻監控平臺的研究與實現[J].物流技術,2015,34(9):251-254.