高西萍,曾 浩,程 瑤
(重慶郵電大學(xué)通信學(xué)院,重慶 400065)
手機視頻監(jiān)控近幾年發(fā)展非常迅速,手機終端的發(fā)展也是非常迅猛,特別是隨著iPhone手機的推出,手機進入了一個新的時代,用iPhone手機已經(jīng)成為一種時尚。在這種趨勢下,基于iPhone的軟件開發(fā)具有很好的市場前景。
手機視頻監(jiān)控系統(tǒng)可以分為4個層次:前端采集設(shè)備、服務(wù)器、移動通信網(wǎng)絡(luò)、手機終端(iPhone 4)。本文給出的基于iPhone 4的手機視頻監(jiān)控系統(tǒng)采用C/S(客戶端/服務(wù)器)模型,整體的框架圖如圖1所示。
圖1 系統(tǒng)框架圖
服務(wù)器端和客戶端之間采用TCP方式傳輸數(shù)據(jù)[1]。服務(wù)器端采用集群式服務(wù)器系統(tǒng)的設(shè)計架構(gòu),根據(jù)3G網(wǎng)絡(luò)的狀況加入子碼流傳輸和管理。iPhone手機客戶端主要有用戶登錄、權(quán)限管理和云臺控制等功能??蛻舳嘶趇OS4.3及以上的操作系統(tǒng),主要完成信令處理、解碼上屏等功能,其中在解碼方面客戶端會對所有H.264格式的視頻編碼流進行統(tǒng)一的解碼處理。
移動視頻監(jiān)控系統(tǒng)的特點是并發(fā)量大,會出現(xiàn)很多用戶同時通過移動網(wǎng)絡(luò)訪問某個交通要道的監(jiān)控點的情況。因此移動視頻監(jiān)控系統(tǒng)主要存在兩個問題:服務(wù)器性能不足和網(wǎng)絡(luò)擁塞[2]。鑒于此,本設(shè)計服務(wù)器端采用多臺服務(wù)器組成的集群共同提供流媒體服務(wù),其服務(wù)器端的架構(gòu)圖如圖2所示。
圖2 集群式服務(wù)器端的架構(gòu)圖
服務(wù)器端由3G入口網(wǎng)關(guān)服務(wù)器、認證服務(wù)器、3G流媒體服務(wù)器、通信服務(wù)器、云臺控制服務(wù)器等模塊組成。
1)3G入口網(wǎng)關(guān)服務(wù)器。系統(tǒng)對外公布的入口地址是該服務(wù)器的IP地址。該服務(wù)器的主要功能是接收用戶的連接請求,調(diào)用認證服務(wù)器的認證功能對用戶進行身份驗證,同時取得當(dāng)前負載最低的流媒體服務(wù)器,并利用重定向功能將流媒體服務(wù)器的IP地址和端口號返回給用戶。引入入口網(wǎng)關(guān)服務(wù)器可以對外屏蔽認證服務(wù)器和流媒體服務(wù)器,使得這兩個服務(wù)器與外界完全隔絕,保證了系統(tǒng)的安全。主要負責(zé)用戶認證轉(zhuǎn)發(fā)、權(quán)限轉(zhuǎn)發(fā)信息以及壓力分配的處理。
2)認證服務(wù)器。功能包括維護當(dāng)前在線用戶列表、用戶權(quán)限認證等用戶管理。認證服務(wù)器對外提供各種用戶權(quán)限認證的功能,比如用戶登錄認證、流媒體訪問權(quán)限認證、云臺控制權(quán)限認證。
3)3G流媒體服務(wù)器。流媒體服務(wù)器是這個系統(tǒng)的核心,主要功能是為用戶提供流媒體的服務(wù)。由于一臺服務(wù)器無法支持大量用戶并發(fā)所需的計算能力和網(wǎng)絡(luò)帶寬,系統(tǒng)中設(shè)置了多臺媒體服務(wù)器為用戶提供服務(wù)。每臺流媒體服務(wù)器之間相互獨立,流媒體服務(wù)器與用戶之間形成一對多的關(guān)系,用戶在一次流媒體會話中不能在不同流媒體之間進行切換。
4)通信服務(wù)器。因為網(wǎng)絡(luò)攝像機不能滿足高并發(fā),無法實現(xiàn)實時的視音頻數(shù)據(jù)的傳輸。因此通信服務(wù)器的功能是接收網(wǎng)絡(luò)攝像機的音視頻數(shù)據(jù),然后發(fā)給3G流媒體服務(wù)器。
5)云臺控制服務(wù)器。云臺控制服務(wù)器的本質(zhì)是網(wǎng)絡(luò)攝像機云臺控制服務(wù)的代理服務(wù)器。云臺控制服務(wù)器收到客戶端發(fā)送的云臺控制后,轉(zhuǎn)換成標準的云臺控制指令,然后發(fā)動到前端采集設(shè)備。
從2007年發(fā)布至今,蘋果手機已經(jīng)從最早的iPhone一代升級到了iPhone 4。iPhone OS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng),iPhone 4采用蘋果最新的iPhone OS 4.0系統(tǒng)。
本系統(tǒng)中手機客戶端主要完成解碼和上屏、云臺控制的功能[2],由此設(shè)計出客戶端流媒體播放器的結(jié)構(gòu)如圖3所示。
圖3 流媒體播放器系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)視頻編碼采用的是目前最流行的H.264編碼格式,它與現(xiàn)有的MPEG-2,MPEG-4及H.263相比,具有明顯的優(yōu)越性,特別是編碼效率上的提高,使之能用于許多新的領(lǐng)域[3],該系統(tǒng)中的客戶端會對所有H.264格式的視頻編碼流進行統(tǒng)一的解碼處理。
目前PC平臺的H.264解碼器比較完善,其中開源的解碼器主要包括 JM decoder,T264 decoder,x264 decoder,F(xiàn)Fmpeg libavcodec,Intel IPP simple player等。但是在iPhone OS平臺還沒有可用的解碼器,所以必須對現(xiàn)有PC平臺上的解碼器進行修改,使之能夠在iPhone OS平臺上正確運行,即將解碼器由PC平臺移植至iPhone OS平臺[4]。
FFmpeg是一個集錄制、轉(zhuǎn)換、音視頻編碼解碼功能為一體的完整的開源解決方案。FFmpeg的解碼流程總的可以概括為[5]:打開一個文件后,讀取里面的視頻流,找到對應(yīng)的解碼器并打開,從流中讀取幀數(shù)據(jù)并解碼。具體的視頻解碼流程如圖4所示。
圖4 FFmpeg視頻解碼流程圖
1)初始化libavformat/libavcodec,實現(xiàn)代碼為:
這一步注冊庫中含有的所有可用的文件格式和編碼器,這樣當(dāng)打開一個文件時,它們才能夠自動選擇相應(yīng)的文件格式和編碼器。
2)打開文件,實現(xiàn)代碼為:
3)從AVFormatContext獲取Stream的信息。實現(xiàn)代碼為:
流中關(guān)于編解碼器的信息就是“codec context”(編解碼器上下文)。這里面包含了流中所使用的關(guān)于編解碼器的所有信息,現(xiàn)在有了一個指向它的指針,下面要找到真正的編解碼器并且打開它。
4)尋找視頻流的解碼器并打開它,實現(xiàn)代碼為:
5)為解碼幀分配內(nèi)存,實現(xiàn)代碼為:
6)不停地從碼流中提取出幀數(shù)據(jù),判斷幀的類型,對于視頻幀調(diào)用avcodec_decode_video()解碼,實現(xiàn)代碼為:
7)轉(zhuǎn)換圖像格式,實現(xiàn)代碼為:
因為準備輸出保存24位RGB格式的JPEG文件,且iPhone只支持RGB格式,因此必須把解碼后的圖像格式從原來的YUV420轉(zhuǎn)換為RGB格式。
8)解碼完后,釋放解碼器,實現(xiàn)代碼為:
9)關(guān)閉輸入文件,實現(xiàn)代碼為:
本文給出的基于iPhone 4的手機視頻監(jiān)控系統(tǒng)的服務(wù)器端和客戶端的詳細設(shè)計,服務(wù)器端主要完成的是流媒體編碼和轉(zhuǎn)發(fā),客戶端主要完成的是流媒體的解碼和上屏,還能對帶有云臺的攝像頭進行控制,如調(diào)焦距、上、下、左、右的控制。在MAC OS的模擬iPhone平臺上,測試中顯示的監(jiān)控畫面如圖5所示。
圖5 測試中顯示的監(jiān)控畫面
該視頻圖像的技術(shù)參數(shù)是:分辨力為CIF 352×288,幀率為25 f/s,碼率為128 kbit/s。前端網(wǎng)絡(luò)攝像機的供應(yīng)商是大華,通過對前端設(shè)備的設(shè)置在監(jiān)控畫面上可以顯示視頻遮擋、時間、通道號等信息,能滿足用戶視頻查看、云臺控制的基本要求。
本文給出了一套基于iPhone 4的手機視頻監(jiān)控系統(tǒng)實現(xiàn)方案,并對系統(tǒng)服務(wù)器端和客戶端的模塊進行了設(shè)計說明。本文設(shè)計的基于iPhone 4的手機視頻監(jiān)控系統(tǒng)的方案,能滿足手機用戶的視頻查看、云臺控制的基本需求,接下來的工作是對手機客戶端的功能做進一步的擴展,增加手動錄像、圖像抓幀、短信報警等功能。
[1]張萬芳,蘇鴻根.基于RTP/UDP/IP協(xié)議實時傳輸H.264流媒體文件[J].計算機工程與設(shè)計,2009,17(7):31-35.
[2]王超.移動視頻監(jiān)控系統(tǒng)的研究與實現(xiàn)[D].杭州:浙江大學(xué),2010.
[3]馬杰,田金文,柳鍵.流媒體技術(shù)及其文件格式[J].計算機工程與應(yīng)用,2003,9(13):49-52.
[4]杜傳贏.Symbian平臺移動流媒體播放器的實現(xiàn)與優(yōu)化[D].廈門:廈門大學(xué),2008.
[5]尹超超,龍昭華,謝顯中.H.264實時視頻通信終端的研究與實現(xiàn)[J]. 電視技術(shù),2011,35(3):53-56.