摘 要:通過遠(yuǎn)程視頻監(jiān)控系統(tǒng),可以實現(xiàn)對遠(yuǎn)程場景的實時監(jiān)控。文中以移動通信設(shè)備中常用的Android系統(tǒng)為基礎(chǔ),以C/S+M架構(gòu)和Java技術(shù)為依托,設(shè)計和實現(xiàn)了基于Android環(huán)境的多媒體視頻監(jiān)控系統(tǒng)。實際的應(yīng)用效果表明,所設(shè)計的系統(tǒng)穩(wěn)定性更可靠和穩(wěn)定,系統(tǒng)操作性也較強(qiáng)。
關(guān)鍵詞:Android系統(tǒng);視頻監(jiān)控;服務(wù)器端;客戶端
中圖分類號:TP277
在現(xiàn)代通信和網(wǎng)絡(luò)技術(shù)的支持下,遠(yuǎn)程監(jiān)控技術(shù)應(yīng)運而生。該技術(shù)能夠通過計算機(jī)中所配置的軟件終端,向遠(yuǎn)程計算機(jī)發(fā)送響應(yīng)指令和程序,從而實現(xiàn)對遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控設(shè)備的控制與操作。同時,還可以將信息向本地計算機(jī)返回?,F(xiàn)在,如果僅僅通過PC來承擔(dān)遠(yuǎn)程監(jiān)控系統(tǒng)的顯示終端,已經(jīng)逐漸與市場和用戶的多元化需求相脫節(jié)。所以,本文針對Android環(huán)境中的移動智能通信終端進(jìn)行研究,設(shè)計出遠(yuǎn)程監(jiān)控系統(tǒng),能夠?qū)崿F(xiàn)多媒體設(shè)備控制程序與服務(wù)器端程序的分離,這樣,就可以實現(xiàn)基于C/S+M架構(gòu)的便攜式遠(yuǎn)程多媒體監(jiān)控系統(tǒng)。
1 總體設(shè)計方案
文中所采用的基于Android智能通信終端多媒體遠(yuǎn)程視頻監(jiān)控系統(tǒng),通過將視頻和音頻設(shè)備與服務(wù)器端的物理分離,同時為各種多媒體設(shè)備提供專用的控制程序。這樣,可以在大幅增加系統(tǒng)中模塊獨立性的同時,更提高系統(tǒng)的可移植性和可維護(hù)性。在本文中所設(shè)計和實現(xiàn)的多媒體遠(yuǎn)程監(jiān)控系統(tǒng)中,由于采用了基于C/S+M的架構(gòu),使得可以將Android環(huán)境下的通信設(shè)備作為控制終端;而服務(wù)器端則采用個人電腦來實現(xiàn)。
2 系統(tǒng)設(shè)計與實現(xiàn)
在文中所設(shè)計的視頻監(jiān)控系統(tǒng)中,主要包括了采集模塊、解碼和編碼模塊、傳輸模塊、顯示模塊等,所采用的驅(qū)動方式為三點一線架構(gòu),即C/S+M。系統(tǒng)中所包含的硬件架構(gòu)中主要有云臺攝像頭、網(wǎng)絡(luò)視頻服務(wù)器、智能通信終端等。在文中的視頻遠(yuǎn)程監(jiān)控系統(tǒng),關(guān)鍵技術(shù)環(huán)節(jié)就是對編碼器的設(shè)計與實現(xiàn),也就是需要通過H.264編碼標(biāo)準(zhǔn)將系統(tǒng)中云臺攝像機(jī)所得到的模擬信號和數(shù)據(jù)統(tǒng)一進(jìn)行編碼和壓縮,從而得到數(shù)字化的數(shù)據(jù),這樣,就可以將這些數(shù)字信息通過TD-SCMA無線環(huán)境推動到TD-SCDMA網(wǎng)絡(luò)中,并通過Internet網(wǎng)絡(luò)將信號連接到視頻服務(wù)器上,最后,配置了Android環(huán)境的智能通信終端,就可以通過訪問網(wǎng)絡(luò)服務(wù)器來獲取保存的視頻數(shù)據(jù)。
2.1 系統(tǒng)服務(wù)器端
在文中遠(yuǎn)程監(jiān)控系統(tǒng)的服務(wù)器端,為了實現(xiàn)和創(chuàng)建一個新的客戶端Socket對象,通常都是通過調(diào)用socket=new socket()等方式完成。以這種方式,可以在出現(xiàn)setSotTimeOut設(shè)置超時的情況下,通過調(diào)用socket.connect來實現(xiàn)客戶端和服務(wù)器端的連接,此外,還可以采用socket.getInputStrean()方法來從服務(wù)器端所傳送過來的實時圖像數(shù)據(jù)。除此之外,系統(tǒng)還需要在服務(wù)器端額外增開一個單獨的線程,實現(xiàn)對客戶端用戶請求的連續(xù)監(jiān)聽,在請求同意的情況下,就可以通過JMF方式,從相應(yīng)的數(shù)據(jù)位置進(jìn)行圖像數(shù)據(jù)的抓取,并將其轉(zhuǎn)換為輸出流,這樣就可以將輸出流傳送到客戶端,從而構(gòu)成一個完整的圖像傳輸過程。
概括起來,服務(wù)器端所包含的主要模塊及其功能有:
(1)初始化模塊。該模塊的主要功能就是對應(yīng)用程序的運行狀態(tài)進(jìn)行初始化,在初始化過程中獲取網(wǎng)絡(luò)環(huán)境的IP地址、端口以及驗證用戶的登錄密碼等等。
(2)連接監(jiān)聽模塊。該模塊的主要功能就是在完成程序的初始化過程后,還需要在系統(tǒng)指定的端口完成TCP監(jiān)聽環(huán)節(jié),從而實現(xiàn)對遠(yuǎn)程連接狀態(tài)的等待。
(3)遠(yuǎn)程連接模塊。在該模塊的設(shè)計中,需要其完成實際環(huán)境中的TCP連接與數(shù)據(jù)收發(fā)。這樣,如果遠(yuǎn)程視頻監(jiān)控終端的客戶端發(fā)出了訪問信號,且服務(wù)器端也完成了用戶合法身份的核實和數(shù)據(jù)接收過程啟動后,開始重新分配新的Socket套接字,并完成TCP連接與數(shù)據(jù)通信過程。
(4)指令處理模塊。在該模塊的設(shè)計中,其主要功能是接收系統(tǒng)傳送來的指令,并對其進(jìn)行解析,分析得到系統(tǒng)想操作的對象,并對其進(jìn)行相關(guān)的操作。
(5)數(shù)據(jù)處理模塊。在該模塊中,主要功能是在對數(shù)據(jù)和信息進(jìn)行壓縮處理的基礎(chǔ)上完成傳輸過程,具體而言就是根據(jù)系統(tǒng)中所定義的編碼協(xié)議,對數(shù)據(jù)進(jìn)行封裝,最后通過遠(yuǎn)程連接模塊,實現(xiàn)數(shù)據(jù)的傳輸。
2.2 系統(tǒng)客戶端
在文中所設(shè)計的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的客戶端中,包括了多種功能,比如用的視頻回放、通道切換、屏幕縮放、云臺控制以及數(shù)據(jù)的存儲和分發(fā)等等。在監(jiān)控系統(tǒng)中,包含有大量的媒體流文件,在處理過程中需要通過數(shù)據(jù)處理層將其RTP包頭信息去除,接著,就需要只能對RTP中所存放的信息和數(shù)據(jù)進(jìn)行幀重組操作,并將重組得到的數(shù)據(jù)幀傳送到整個系統(tǒng)的待解碼緩沖區(qū)中;不過,考慮到本地文件處理的特殊性,其處理方式略有不同,需要根據(jù)相應(yīng)的媒體格式繼續(xù)擰封裝解除,然后,可以將文件中所含的各種數(shù)據(jù)和信息,根據(jù)數(shù)據(jù)幀的已有形式將其存放到上層的待解碼緩沖區(qū)中。在文中所設(shè)計的遠(yuǎn)程視頻監(jiān)控系統(tǒng)中,其用戶界面的設(shè)計和實現(xiàn)主要通過Android環(huán)境中的GUI來完成,可以在系統(tǒng)用戶和播放器之間設(shè)置專用的接口。一般情況下,在Android環(huán)境中,其GUI功能的實現(xiàn)主要包含兩個不同的架構(gòu),分別是Java架構(gòu)和C語言架構(gòu),同時,可以分為多個不同的層次。此外,Java應(yīng)用程序?qū)右部梢詫@些接口進(jìn)行調(diào)用。在系統(tǒng)的音頻和視頻解碼層中,還包括了其中常用的功能,比如解碼組件選擇、多路媒體流同步以及多樣數(shù)據(jù)格式的解碼等。
概括起來,系統(tǒng)中所采用的客戶端的模塊和功能主要有:
(1)初始化模塊。該模塊主要設(shè)計用于實現(xiàn)對各種應(yīng)用程序運行狀態(tài)的初始化處理,在獲取系統(tǒng)各個背景參數(shù)的基礎(chǔ)上,完成對系統(tǒng)中全局變量的設(shè)置。
(2)連接設(shè)置模塊。該模塊主要設(shè)計用于為用戶提供IP連接服務(wù),可以實現(xiàn)對系統(tǒng)中所有連接端口和用戶賬號和密碼的設(shè)置。
(3)套接字管理器。該模塊主要設(shè)計用于對套接字的狀態(tài)和具體的使用情況進(jìn)行管理。
(4)遠(yuǎn)程連接模塊。在該模塊中,主要負(fù)責(zé)完成實際的網(wǎng)絡(luò)連接和服務(wù)器端的通信。
2.3 設(shè)備控制程序
在視頻監(jiān)控系統(tǒng)中的設(shè)備控制程序中,主要包括視頻和音頻程序,且每個程序中都有獨立的操作指令線。指令處理模塊能夠?qū)⒔邮艿降牟僮髦噶钸M(jìn)行解析處理,將需要操作的對象及其需要進(jìn)行的相關(guān)操作進(jìn)行分析。設(shè)備控制程序還能夠?qū)?shù)據(jù)流轉(zhuǎn)化成字符串,然后通過indexOf()和substring()方法,根據(jù)系統(tǒng)中定義的編碼協(xié)議將字符串分割處理,完成對字符串中信息的提取。
3 系統(tǒng)測試結(jié)果
完成對視頻監(jiān)控系統(tǒng)的設(shè)計過程后,還需要對其進(jìn)行兼容性或者適應(yīng)性測試。通過實際的應(yīng)用監(jiān)測,發(fā)現(xiàn)系統(tǒng)適用于多種Android環(huán)境下的智能通信終端。此外,還針對系統(tǒng)的功能性、易用性和互操作性等多種性能進(jìn)行了測試。通過系統(tǒng)的應(yīng)用測試,發(fā)現(xiàn)該系統(tǒng)的用戶界面操作簡單,用戶的使用感覺舒適,在不同的監(jiān)控界面之間進(jìn)行切換,感覺比較流暢,系統(tǒng)的運行更加穩(wěn)定。此外,在系統(tǒng)的服務(wù)器端和客戶端,所提供的通信服務(wù)可以滿足系統(tǒng)設(shè)計的預(yù)期??梢栽?00ms時間內(nèi),對服務(wù)器的請求進(jìn)行相應(yīng),并對視頻監(jiān)控結(jié)果進(jìn)行及時反饋。通過系統(tǒng)還能夠?qū)崿F(xiàn)對云臺相機(jī)的多方向移動控制,并通過快照功能將數(shù)據(jù)推送到網(wǎng)絡(luò)平臺上。
4 結(jié)束語
在現(xiàn)代網(wǎng)絡(luò)通信和信息處理技術(shù)發(fā)展的推動下,基于移動網(wǎng)絡(luò)和智能通信終端的遠(yuǎn)程多媒體監(jiān)控系統(tǒng)已經(jīng)逐漸成為監(jiān)控領(lǐng)域的一個全新發(fā)展方向。主要是由于以遠(yuǎn)程移動視頻監(jiān)控系統(tǒng)為依托,可以實現(xiàn)對遠(yuǎn)程場景的實時監(jiān)控。所以,文中以移動通信設(shè)備中常用的Android系統(tǒng)為基礎(chǔ),以C/S+M架構(gòu)和Java技術(shù)為依托,設(shè)計和實現(xiàn)了基于Android環(huán)境的多媒體視頻監(jiān)控系統(tǒng)。
參考文獻(xiàn):
[1]黃金雪.Socket高效網(wǎng)絡(luò)服務(wù)端研究[J].現(xiàn)代計算機(jī),2011(10):22-25.
[2]楊明極,畢晶.基于Android 視頻客戶端的設(shè)計[J].電視技術(shù),2012(03):43-47.
作者簡介:徐時芳(1982-),女,貴州甕安人,研究生,研究方向:信息與計算科學(xué)。
作者單位:黔南民族師范學(xué)院,貴州都勻 558000