朱敏
(溫州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,浙江 溫州 325035)
基于Android智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)
朱敏
(溫州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,浙江 溫州 325035)
多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)可通過網(wǎng)絡(luò)實(shí)現(xiàn)對遠(yuǎn)程場景的音視頻監(jiān)控。針對目前流行的Android操作系統(tǒng),采用C/S+M(Media)架構(gòu)和Java技術(shù),設(shè)計(jì)基于Android智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)。測試結(jié)果表明,系統(tǒng)性能穩(wěn)定可靠,可操作性強(qiáng)。
Android;智能手機(jī);遠(yuǎn)程視頻監(jiān)控;服務(wù)器端;客戶端
遠(yuǎn)程監(jiān)控是指本地計(jì)算機(jī)通過遠(yuǎn)程監(jiān)控軟件發(fā)送指令給遠(yuǎn)程計(jì)算機(jī),從而控制遠(yuǎn)程監(jiān)控設(shè)備采集當(dāng)?shù)匦畔?,并不斷將信息返回給本地計(jì)算機(jī)的過程。以計(jì)算機(jī)為終端的遠(yuǎn)程監(jiān)控,解決了地域的限制,并且技術(shù)越來越成熟,應(yīng)用越來越廣泛;以移動設(shè)備為終端的遠(yuǎn)程監(jiān)控使用更加方便快捷,可應(yīng)用于停車場、居民區(qū)、幼兒園、應(yīng)急等場景,對家庭、小區(qū)、企業(yè)或?yàn)?zāi)害現(xiàn)場進(jìn)行視頻監(jiān)控、現(xiàn)場指揮等操作。但目前以PC機(jī)為終端的遠(yuǎn)程監(jiān)控技術(shù)無法滿足用戶多元化增長的需求。本文提出基于Android智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)方案,將多媒體設(shè)備控制程序從服務(wù)器端程序分離出來,形成基于獨(dú)立程序的C/S+M(Media)架構(gòu)的新型多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)。
遠(yuǎn)程視頻監(jiān)控軟件一般分為客戶端程序(Client)和服務(wù)器端程序(Server),在使用前需要將客戶端程序安裝在控制端載體上,將服務(wù)器端程序安裝在被控端載體上,通過客戶端程序向服務(wù)器端程序發(fā)出訪問信號,建立遠(yuǎn)程連接傳遞信息,實(shí)現(xiàn)遠(yuǎn)程視頻控制?;贏ndroid智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng),將音視頻設(shè)備程序從傳統(tǒng)的服務(wù)器端程序分離出來,獨(dú)立為多媒體設(shè)備控制程序(Media)。這增強(qiáng)了系統(tǒng)各模塊的獨(dú)立性,便于系統(tǒng)的移植和維護(hù),同時(shí)也大大增加了代碼的可重用性。該視頻監(jiān)控系統(tǒng)采用改進(jìn)的C/S+M(Media)架構(gòu):客戶端為Android智能手機(jī),即控制端;服務(wù)器端為個(gè)人電腦。其系統(tǒng)總體架構(gòu)[1]如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)包括采集模塊、編解碼模塊、傳輸模塊、顯示模塊四大模塊,采用三點(diǎn)一線的驅(qū)動方式(C/S+M(Media)架構(gòu))。其硬件結(jié)構(gòu)有云臺攝像頭、網(wǎng)絡(luò)視頻服務(wù)器、智能手機(jī)客戶端。云臺攝像頭獲得視頻數(shù)據(jù),視頻獲取與傳輸單元完成視頻數(shù)據(jù)的采集與壓縮編碼等處理。系統(tǒng)的關(guān)鍵技術(shù)是編碼器的設(shè)計(jì),使用H.264編碼器將拍攝到的模擬信號進(jìn)行壓縮編碼轉(zhuǎn)換成數(shù)字信號,并通過TD-SCDMA無線Modem發(fā)送到TD-SCDMA網(wǎng)絡(luò),經(jīng)由Internet將信號傳送給視頻服務(wù)器,智能手機(jī)客戶端通過Internet訪問視頻服務(wù)器并獲取視頻數(shù)據(jù)[2]。云臺相當(dāng)于攝像頭的底座,是作為支撐物安裝在工作臺上的,對云臺控制協(xié)議解析和傳輸是多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的關(guān)鍵技術(shù)之一??蛻舳讼蚍?wù)器端發(fā)出操作指令,服務(wù)器端收到指令后解析處理指令,將處理后的指令傳給多媒體設(shè)備控制程序;多媒體設(shè)備控制程序根據(jù)收到的指令初始化相關(guān)設(shè)備,執(zhí)行相關(guān)操作指令,采集信息,將信息傳給服務(wù)器端;服務(wù)器端將采集到的信息壓縮處理后發(fā)給客戶端,客戶端將信息讀取并顯示[3]。
2.1 服務(wù)器端
在服務(wù)器端,利用socket=new socket()創(chuàng)建一個(gè)客戶端的socket對象。當(dāng)setSoTimeout設(shè)置超時(shí)時(shí),可直接使用socket.connect連接客戶端和服務(wù)器端,并采用socket.getInputStream()獲取服務(wù)器端傳輸?shù)膱D像數(shù)據(jù)[4]。此外,服務(wù)器端還需開啟一個(gè)單獨(dú)線程用于監(jiān)聽客戶端的連接請求,同意請求后,運(yùn)用JM F方法從相應(yīng)數(shù)據(jù)位置抓取圖像數(shù)據(jù)轉(zhuǎn)換成輸出流,并傳輸給客戶端,形成一個(gè)完整的圖像傳輸過程。服務(wù)器端設(shè)計(jì)流程[5]如圖2所示。
圖2 服務(wù)器端設(shè)計(jì)流程
服務(wù)器端主要模塊及功能如下:
(1)初始化模塊。負(fù)責(zé)初始化應(yīng)用程序的運(yùn)行狀態(tài),獲取網(wǎng)絡(luò)I P地址/端口及驗(yàn)證用戶登錄密碼等。
(2)連接監(jiān)聽模塊。在程序初始化后,連接監(jiān)聽模塊在指定端口進(jìn)行T CP監(jiān)聽,等待遠(yuǎn)程連接。
(3)遠(yuǎn)程連接模塊。負(fù)責(zé)進(jìn)行實(shí)際的TCP連接和數(shù)據(jù)收發(fā)。當(dāng)客戶端發(fā)出訪問信號、服務(wù)器端核實(shí)身份并開始接收數(shù)據(jù)后,再分配新的socket套接字完成TCP連接并進(jìn)行數(shù)據(jù)通信。
(4)指令處理模塊。將接收到的操作指令解析處理,分析出要操作的對象及對其進(jìn)行相關(guān)操作。
(5)數(shù)據(jù)處理模塊。負(fù)責(zé)將要傳輸?shù)男畔⑦M(jìn)行壓縮,并根據(jù)自定義的編解碼協(xié)議封裝處理,然后交給遠(yuǎn)程連接模塊進(jìn)行傳輸。
2.2 客戶端
客戶端功能主要包括視頻觀看、切換通道、全屏放大、云臺控制、調(diào)焦、手機(jī)抓拍、收藏及退出分享等。對于媒體流文件來說,數(shù)據(jù)預(yù)處理層先將RT P的報(bào)頭信息去除,再對RTP中的音視頻信息進(jìn)行組幀,同時(shí)將全部的數(shù)據(jù)幀傳遞到上層待解碼緩沖區(qū);而對于本地文件,則需要按照相對應(yīng)的媒體格式進(jìn)行解封裝,再將獲取文件的音視頻等信息按幀放入對應(yīng)的上層待解碼緩沖區(qū)。遠(yuǎn)程視頻實(shí)時(shí)監(jiān)視的用戶界面主要通過Android的GUI系統(tǒng)來實(shí)現(xiàn),負(fù)責(zé)提供播放器和用戶之間的交互接口,如播放時(shí)的快進(jìn)、后退、暫停等功能。Android的GUI系統(tǒng)由Java語言框架和C語言框架組成,分成上下兩層。對于下層,G U I系統(tǒng)通過調(diào)用顯示輸入輸出設(shè)備的驅(qū)動,將硬件和Android的軟件系統(tǒng)聯(lián)系起來;對于上層,GUI系統(tǒng)提供Java層次的繪圖接口,Android的Java框架層調(diào)用這些接口構(gòu)建各種UI元素。此外,Java應(yīng)用程序?qū)右部烧{(diào)用這些接口。音視頻解碼層包括解碼選擇組件、多樣主流音視頻格式的解碼器及多路媒體流之間的同步功能[6]??蛻舳嗽O(shè)計(jì)流程[5]如圖3所示。
圖3 客戶端設(shè)計(jì)流程
客戶端主要模塊及功能如下:
(1)初始化模塊。負(fù)責(zé)初始化應(yīng)用程序的運(yùn)行狀態(tài),得到背景參數(shù),設(shè)置全局變量。
(2)連接設(shè)置模塊。用戶設(shè)置連接I P地址、端口、登錄密碼等。
(3)套接字管理器。管理套接字的狀態(tài)和使用。
(4)遠(yuǎn)程連接模塊。負(fù)責(zé)進(jìn)行實(shí)際的網(wǎng)絡(luò)連接和與服務(wù)器端通信。
(5)指令生成模塊。負(fù)責(zé)根據(jù)用戶的界面操作,產(chǎn)生相應(yīng)的操作指令并根據(jù)自定義的編解碼協(xié)議封裝。
(6)數(shù)據(jù)顯示模塊。將處理好的媒體信息在手機(jī)上進(jìn)行顯示或播放。
(7)數(shù)據(jù)處理模塊。將遠(yuǎn)程連接模塊收到的信息進(jìn)行相應(yīng)處理,將其轉(zhuǎn)化成智能手機(jī)上能顯示的信息。
2.3 多媒體設(shè)備(Media)控制程序
多媒體設(shè)備控制程序包括音視頻程序,每個(gè)程序中都有獨(dú)立的操作指令線。指令處理模塊將接收到的操作指令進(jìn)行解析處理,分析出要操作的對象及對其進(jìn)行相關(guān)操作。它將數(shù)據(jù)流轉(zhuǎn)化成字符串,然后采用indexOf()和substring()方法,根據(jù)自定義的編解碼協(xié)議將字符串分割,提取字符串中的信息。
編解碼協(xié)議定義兩種信息類型:一是數(shù)據(jù)型,以d表示data;二是指令型,以o表示order。數(shù)據(jù)型信息編碼協(xié)議結(jié)構(gòu)是指,輸入單元將來自外部的輸入信號進(jìn)行數(shù)字轉(zhuǎn)換及串并轉(zhuǎn)換,并將轉(zhuǎn)換后的輸入信號分別提供給輸出單元及解碼單元;輸出單元將來自輸入單元的輸入信號串并轉(zhuǎn)換及模擬轉(zhuǎn)換成輸出信號,并將輸出信號輸出到外部。指令型信息編碼協(xié)議結(jié)構(gòu)為:信息類型\操作設(shè)備\一級操作\二級操作\三級操作\信息結(jié)尾符end,如“o\camera\picture \end”表示攝像機(jī)拍照指令,“o\camera\picture\ save\end”表示將所拍照片保存指令。
多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)完成后,對其進(jìn)行兼容性/適應(yīng)性測試,結(jié)果表明,該系統(tǒng)能兼容三星9100、HTChero、ZTEU880等三款以上的Android常用手機(jī)機(jī)型。同時(shí)還進(jìn)行了功能測試、性能測試、用戶體驗(yàn)/易用性測試、互操作性測試。在測試過程中,系統(tǒng)界面易操作,用戶體驗(yàn)度良好,不同監(jiān)控界面切換流暢,性能穩(wěn)定。服務(wù)器端和智能手機(jī)客戶端通信也達(dá)到了預(yù)期要求,能夠在500ms以內(nèi)即時(shí)響應(yīng)服務(wù)器的請求并能快速反饋視頻監(jiān)控結(jié)果。通過該系統(tǒng)可控制云臺向上、向下、向左、向右移動,還可快照,具備分享到網(wǎng)絡(luò)上等功能。Android智能手機(jī)客戶端視頻監(jiān)控界面如圖4所示。
圖4 Android智能手機(jī)客戶端視頻監(jiān)控界面
隨著網(wǎng)絡(luò)和視頻編碼技術(shù)的不斷發(fā)展,移動視頻監(jiān)控將是未來視頻監(jiān)控行業(yè)的發(fā)展方向。針對目前流行的Android操作系統(tǒng),采用C/S+M(Media)架構(gòu)和Java技術(shù),設(shè)計(jì)基于Android智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng),大大提升了系統(tǒng)的性能,并增加了系統(tǒng)的移植性和代碼的可重用性?;贏ndroid智能手機(jī)多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng)整體投入成本低,界面人性化,基本實(shí)現(xiàn)了手機(jī)客戶端對前端攝像頭的實(shí)時(shí)監(jiān)控功能。
[1]秦耕,程克非,張亞奎.基于智能手機(jī)的電腦遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(3):22-24.
[2]魏崇毓,張菲菲.基于Android平臺的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2012(14):215-216.
[3]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010:1-5.
[4]黃金雪.Socket高效網(wǎng)絡(luò)服務(wù)端研究[J].現(xiàn)代計(jì)算機(jī),2011(10):22-25.
[5]李琴,陳立定,任志剛.基于Android智能手機(jī)遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2012(7):134-136.
[6]楊明極,畢晶.基于Android視頻客戶端的設(shè)計(jì)[J].電視技術(shù),2012(3):43-47.
[責(zé)任編輯:林海平]
Design of Smart Phone Multimedia Remote Video Surveillance System Based on Android
ZHU Min
(Computer Science Department, Wenzhou Vocational & Technical College, Wenzhou, 325035, China)
The multimedia remote video surveillance system can monitor the audio and video of remote scene through the network. Applying C/S+M (Media) structure and Java technology, the smart phone multimedia remote video surveillance system is designed based on the current Android operating system. It is proved that the system is stable and reliable with strong operability.
Android; Intelligent mobile phone; Video monitor of remote scene; Server; Client
TP277.2
A
1671-4326(2013)02-0065-03
2013-01-31
溫州職業(yè)技術(shù)學(xué)院科研項(xiàng)目(WZY2010033)
朱 敏(1981—),女,江西吉安人,溫州職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系講師,碩士.