陳文琴,黃 珣
(國家氣象信息中心,北京100081)
責(zé)任編輯:任健男
天氣預(yù)報(bào)電視會商系統(tǒng)是中國氣象局重要的實(shí)時業(yè)務(wù)平臺,該系統(tǒng)承載著全國氣象部門遠(yuǎn)程天氣會商、會議等任務(wù)[1]。天氣預(yù)報(bào)電視會商錄播系統(tǒng)(以下簡稱會商錄播系統(tǒng))是在天氣預(yù)報(bào)電視會商系統(tǒng)中對電視會商會議提供實(shí)時錄制、直播、點(diǎn)播等服務(wù)的重要平臺[2],其錄制的文件為雙路視頻文件,包括視頻圖像及計(jì)算機(jī)圖像。在實(shí)際應(yīng)用中,兩路文件通過時間軸自動關(guān)聯(lián),同時播放。觀看者通過Web頁面登錄會商錄播系統(tǒng)界面,即可對電視會商節(jié)目進(jìn)行直播、點(diǎn)播收看。
隨著手機(jī)、平板PC等移動終端的普及以及3G網(wǎng)絡(luò)的不斷完善,基于移動終端操作系統(tǒng)平臺的應(yīng)用軟件開發(fā)成為目前電信新的技術(shù)發(fā)展趨勢。2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額,中國市場占有率為90%[3],具有巨大的市場和發(fā)展?jié)摿?,有望在未來幾年成為移動電子設(shè)備上占有量最大的操作系統(tǒng)。
本文設(shè)計(jì)一款基于Android操作系統(tǒng)的氣象會商流媒體客戶端應(yīng)用軟件(以下簡稱Android客戶端),采用Android操作系統(tǒng)的移動終端(手機(jī)、平板PC等),可借助該應(yīng)用,訪問中國氣象局氣象會商錄播平臺,點(diǎn)播瀏覽音視頻節(jié)目。
基于Android平臺軟件應(yīng)用使用戶可在具備網(wǎng)絡(luò)條件的各種環(huán)境下便捷地使用Android系統(tǒng)手機(jī)、平板PC等移動終端收看預(yù)報(bào)會商,使用環(huán)境由傳統(tǒng)的個人PC向移動終端拓展,有效地提高了會商錄播系統(tǒng)的使用率,擴(kuò)大其使用范圍。
Android是由Google公司推出的一種開源的移動操作系統(tǒng),以精簡的Linux操作系統(tǒng)為內(nèi)核,由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android采用軟件堆層的架構(gòu),主要分為3個部分[4]:底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機(jī)Virtual Machine,由C++開發(fā);最上層是各種應(yīng)用軟件,由各公司自行開發(fā),以Java作為編寫程序的一部分[5]。如今越來越多的移動設(shè)備都在使用Android作為其操作系統(tǒng),Android不僅具備開源的優(yōu)勢,而且擁有靈活便捷的應(yīng)用程序控制,以及其他移動平臺所具備的所有功能。
本應(yīng)用依托天氣預(yù)報(bào)電視會商錄播系統(tǒng)設(shè)計(jì)。會商錄播系統(tǒng)由電視會商系統(tǒng)主控中心音視頻、計(jì)算機(jī)分配切換子系統(tǒng)采集信號,通過硬件編碼器將音視頻信號壓縮編碼成IP流,推送至中國氣象局局域網(wǎng)錄播服務(wù)器以及部署于Internet DMZ區(qū)的外網(wǎng)錄播服務(wù)器,通過服務(wù)器提供局域網(wǎng)、Internet用戶的在線直播、點(diǎn)播服務(wù)。會商錄播系統(tǒng)采集的主視頻流分辨率為1080p高清信號[6],計(jì)算機(jī)信號分辨率為1 280×1 024,系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
圖1 天氣預(yù)報(bào)會商錄播系統(tǒng)結(jié)構(gòu)示意圖
考慮到Android平臺終端移動接入的特點(diǎn),網(wǎng)絡(luò)帶寬受限,設(shè)計(jì)將會商錄播系統(tǒng)采集的視頻信號利用H.264編碼技術(shù)[7],進(jìn)一步壓縮轉(zhuǎn)存為低碼率、低畫面分辨率的流媒體數(shù)據(jù),適于Android平臺流媒體客戶端訪問。目前主流的視頻網(wǎng)站提供商針對Android移動終端提供的定制流媒體發(fā)布視頻分辨率一般在QCIF(176×144)和CIF(352×288)之間[8]。本系統(tǒng)主視頻分辨率為CIF,計(jì)算機(jī)信號分辨率為QCIF。在客戶端軟件上提供兩種不同網(wǎng)絡(luò)狀況下的應(yīng)用模式,若接入網(wǎng)絡(luò)為WCDMA 3G[9]移動網(wǎng)絡(luò),用戶可選擇3G模式收看天氣預(yù)報(bào)會商主視頻,幀率為15幀/秒(f/s)左右;若通過WiFi寬帶接入Internet公網(wǎng),用戶可選擇WiFi模式下收看會商計(jì)算機(jī)雙流視頻,幀率為15 f/s左右。通過可變幀率以及差值視頻編碼的技術(shù)路線解決氣象系統(tǒng)對高分辨率流媒體顯示的需求。
流媒體數(shù)據(jù)傳輸協(xié)議選擇RTSP實(shí)時流協(xié)議[10],其定義了一對多應(yīng)用程序高效通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)的方法。RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上。它使用TCP或RTP完成數(shù)據(jù)傳輸。使用RTSP時,客戶端和服務(wù)器都可以發(fā)出請求。在Android平臺客戶端軟件通過設(shè)置循環(huán)緩沖區(qū)以及音頻高優(yōu)先級傳輸?shù)姆绞?,保證音頻數(shù)據(jù)清晰、流暢呈現(xiàn)。
Android客戶端應(yīng)用由服務(wù)器端軟件、流媒體服務(wù)器軟件、數(shù)據(jù)庫服務(wù)器軟件和基于Android終端的客戶端軟件組成。
其中,服務(wù)器端軟件主要的功能是給Android客戶端軟件提供與視頻點(diǎn)播系統(tǒng)相關(guān)的數(shù)據(jù)服務(wù),同時提供對數(shù)據(jù)和系統(tǒng)配置信息的維護(hù)功能。流媒體服務(wù)器主要提供對客戶端視頻的實(shí)時點(diǎn)播的功能,支持多用戶并發(fā)訪問。數(shù)據(jù)庫服務(wù)器軟件主要提供整個系統(tǒng)用戶和分組的相關(guān)數(shù)據(jù)的存儲的功能?;贏ndroid的客戶端軟件主要支持用戶登錄、視頻點(diǎn)播、視頻搜索等功能。
本部分主要描述Android會商點(diǎn)播軟件各模塊的軟件設(shè)計(jì)。考慮到系統(tǒng)服務(wù)器端軟件的穩(wěn)定性,服務(wù)器端軟件基于Windows Server 2003內(nèi)部的IIS組件,服務(wù)器端的軟件主要基于ASP.Net技術(shù)實(shí)現(xiàn)。
Android客戶端與服務(wù)器端的通信基于HTTP[11]協(xié)議,數(shù)據(jù)傳輸以XML格式和二進(jìn)制格式(主要是視頻縮略圖等,由會商錄播系統(tǒng)提供共享)。視頻播放界面以網(wǎng)頁的形式嵌入到Android應(yīng)用程序內(nèi)(以Android Web View和Web Kit支持)。
系統(tǒng)總體結(jié)構(gòu)及各個模塊之間的通信與依賴關(guān)系如圖2所示。
服務(wù)器端主要以網(wǎng)站的形式發(fā)布,為客戶端提供數(shù)據(jù)服務(wù)和后臺維護(hù)功能。服務(wù)端是在原有會商錄播系統(tǒng)的硬件基礎(chǔ)上開發(fā)的,基于會商錄播系統(tǒng)的視頻編碼器和錄播系統(tǒng)開發(fā)。Android客戶端與服務(wù)器端的通信基于HTTP協(xié)議,傳輸?shù)臄?shù)據(jù)格式基于XML[12]。
圖2 系統(tǒng)各模塊之間通信關(guān)系圖
服務(wù)器端軟件邏輯設(shè)計(jì)如下:
1)BO:業(yè)務(wù)邏輯層,包括系統(tǒng)登錄、權(quán)限認(rèn)證和相關(guān)信息的維護(hù)的業(yè)務(wù)邏輯相關(guān)操作組件。
2)DAO:數(shù)據(jù)訪問層,主要提供數(shù)據(jù)訪問和存儲的功能,包括對數(shù)據(jù)庫的操作和對本地配置文件的操作。
3)Entity:實(shí)體,對應(yīng)數(shù)據(jù)庫層的表,便于以面向?qū)ο蟮姆绞綄?shù)據(jù)和配置文件的存儲訪問,提高系統(tǒng)可重復(fù)利用和擴(kuò)展性。
4)UI:用戶界面層,主要是面向后臺管理和Android客戶端提供服務(wù)的模塊。Aspx包主要是面向后臺管理系統(tǒng)的界面,http handlers模塊主要是面向Android客戶端以HTTP方式的提供視頻信息的查詢與讀取功能,通信數(shù)據(jù)格式主要以XML為主。
服務(wù)器端軟件模塊調(diào)用關(guān)系圖如圖3所示。
圖3 服務(wù)器端軟件模塊調(diào)用關(guān)系圖
客戶端主要是解析從服務(wù)器端請求的數(shù)據(jù)進(jìn)行解析,然后在頁面上顯示出來。主要分為3層:通信層,數(shù)據(jù)解析層,界面層。
1)通信層
通信層使用的通信協(xié)議是HTTP協(xié)議,通信的方式是客戶端請求一個指定的URL地址(同時附帶若干個參數(shù),如會商視頻的類型),服務(wù)器端根據(jù)客戶請求的地址和參數(shù),以XML格式向客戶端發(fā)送相應(yīng)的請求結(jié)果數(shù)據(jù)。
客戶端每次都以異步的方式發(fā)送一個請求,然后等待服務(wù)器響應(yīng),服務(wù)器響應(yīng)并返回?cái)?shù)據(jù)以后通知數(shù)據(jù)解析層解析數(shù)據(jù),數(shù)據(jù)解析層解析完數(shù)據(jù)以后通知界面層更新界面。
2)數(shù)據(jù)解析層
數(shù)據(jù)解析層的主要作用是解析服務(wù)器端返回的XML格式的數(shù)據(jù)。
3)界面層
界面層的主要功能是與用戶交互,如接受用戶輸入和點(diǎn)擊等,根據(jù)用戶在界面上的操作向服務(wù)器端發(fā)送不同的請求。例如在頁面的視頻類型列表中點(diǎn)擊視頻類型(如早間會商等)列表中的某一條,即向服務(wù)器端發(fā)送一個請求,要求返回對應(yīng)視頻類型的視頻信息相關(guān)數(shù)據(jù),返回的結(jié)果由數(shù)據(jù)解析層處理。
界面層作為與用戶交互的接口,所有向服務(wù)器發(fā)送的請求都是由用戶在界面層上的某個操作觸發(fā)的。
啥都有:2011年的農(nóng)歷新年伊始,趕集網(wǎng)的一部視頻廣告開始陸續(xù)出現(xiàn)在銀屏公交、樓宇電視等媒介上。廣告依靠影星姚晨人氣和一頭驢子的幽默表演吸引了許多人的關(guān)注?!皒xx,啥都有”的廣告詞由于朗朗上口,迅速被網(wǎng)友進(jìn)行惡搞,趕集網(wǎng)廣告海報(bào)中的驢子被換成了機(jī)器貓、憤怒的小鳥和變形金剛等形象,廣告語也配合不同的形象進(jìn)行了改變。
綜上所述,客戶端軟件模塊調(diào)用關(guān)系圖如圖4所示??蛻舳塑浖?zhí)行流程為:界面層觸發(fā)請求,服務(wù)器響應(yīng)請求并返回?cái)?shù)據(jù),解析層解析數(shù)據(jù)并通知界面更新,顯示數(shù)據(jù)或切換界面。
圖4 客戶端軟件模塊調(diào)用關(guān)系圖
客戶端軟件邏輯設(shè)計(jì)如下:
1)Net包:主要負(fù)責(zé)網(wǎng)路通信的模塊。
2)Entities:實(shí)體,對應(yīng)數(shù)據(jù)庫層的表,便于以面向?qū)ο蟮姆绞綄?shù)據(jù)和配置文件的存儲訪問,提高系統(tǒng)可重復(fù)利用和擴(kuò)展性。
3)DAO:數(shù)據(jù)存儲與訪問,主要負(fù)責(zé)解析XML數(shù)據(jù)等功能。
4)Services:運(yùn)行于Android后臺的服務(wù)進(jìn)程,主要負(fù)責(zé)綜合服務(wù)信息的檢測和與服務(wù)器端的通信,以防止界面操作不流暢等現(xiàn)象出現(xiàn)。
5)Util:所有的輔助性類。
電視會商流媒體文件與普通視頻網(wǎng)站傳輸?shù)牧髅襟w文件區(qū)別在于電視會商同時傳輸兩路信號——視頻信號和計(jì)算機(jī)信號。在設(shè)計(jì)Android流媒體點(diǎn)播軟件時,需要專門設(shè)計(jì)能夠同時解析2路流媒體文件的播放器。在本系統(tǒng)設(shè)計(jì)中,雙視頻文件進(jìn)行同步播放是通過Flash客戶端與流媒體服務(wù)器(Flash Media Server)同時建立2個TCP連接,通過TCP傳輸視頻數(shù)據(jù),在客戶端解碼進(jìn)行播放。當(dāng)其中一路視頻在緩沖的時候,另一路視頻暫停播放,等到緩沖完畢后再同時播放,以此實(shí)現(xiàn)視頻和計(jì)算機(jī)信號的同步播放。
視頻點(diǎn)播模塊主要用到的類有Flash Action Script里的NetConnection類、NetStream類、Video類。NetConnection類主要用于與Flash Media Server建立TCP連接,然后在Flash客戶端和Flash Media Server之間傳輸數(shù)據(jù)。通過NetConnection類與Flash Media Server建立連接以后可以通過該連接建立一個流(類似操作本地文件流),這個流對象就是NetStream類的一個實(shí)例對象。在代碼中用下列語句實(shí)現(xiàn):
vgaStream=new NetStream(vgaConnection);
在與服務(wù)器端建立連接時需要注冊一個事件,即連接成功后通知客戶端執(zhí)行其他操作。以下是初始化Net-Connection對象和注冊事件以及請求連接的代碼:
videoConnection=new NetConnection();
videoConnection.addEventListener(NetStatusEvent.NET_STATUS,videonetStatusHandler);
videoConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
videoConnection.connect(videoUrl);
Android客戶端將用戶名和密碼以HTTP方式提交給服務(wù)器端軟件驗(yàn)證,只有在驗(yàn)證之后才能切換到系統(tǒng)主界面,如圖5所示。在地址欄輸入服務(wù)器地址,即可登錄電視會商點(diǎn)播平臺服務(wù)器,如圖6所示。
用戶點(diǎn)擊“會商視頻服務(wù)”選單,可進(jìn)入二級頁面,如圖7所示。用戶根據(jù)需求選擇視頻所屬類別。
圖5 登錄界面(截圖)
圖6 服務(wù)器地址界面(截圖)
圖7 選單界面(截圖)
本軟件提供視頻搜索功能,輸入關(guān)鍵字,點(diǎn)擊“搜索”,可對所需觀看視頻進(jìn)行檢索,如圖8所示。
圖8 搜索功能界面(截圖)
用戶進(jìn)入會商視頻服務(wù)功能后,進(jìn)入到視頻列表頁面。每頁按時間先后順序顯示10條列表,并具備翻頁按鈕,如圖9所示。
圖9 視頻列表界面(截圖)
用戶點(diǎn)擊要觀看的視頻文件名,即可進(jìn)入視頻播放界面。在播放時,可選擇播放、暫停、停止,并可拖動進(jìn)度條選擇播放進(jìn)度。
點(diǎn)擊“退出”鍵可直接退出播放界面。
本軟件已成功在Android系統(tǒng)的手機(jī)上進(jìn)行測試,授權(quán)用戶可登陸到點(diǎn)播平臺,選擇需要觀看的會商文件進(jìn)行點(diǎn)播。實(shí)際播放界面如圖10所示。
圖10 手機(jī)收看會商節(jié)目界面
本文實(shí)現(xiàn)了基于Android操作系統(tǒng)的電視會商流媒體點(diǎn)播平臺,分析了該平臺的總體架構(gòu),服務(wù)器端、客戶端的軟件設(shè)計(jì),以及UI設(shè)計(jì)。該設(shè)計(jì)具有一定的通用性和開放性,對視頻會議、流媒體數(shù)據(jù)的Android開發(fā)有借鑒意義。Android會商點(diǎn)播軟件與中國氣象局天氣會商錄播平臺相銜接,將傳統(tǒng)的基于PC的會商錄播平臺移植到Android客戶端,并成功在Android3.0以上版本的手機(jī)平臺上穩(wěn)定運(yùn)行,為移動辦公提供了有力支撐,具有極大的業(yè)務(wù)前景。
[1]姚鴻,李春來,鄧鑫,等.視頻會議在氣象業(yè)務(wù)中的應(yīng)用前景分析[J].電視技術(shù),2011,35(17):108-113.
[2]吳廣智.VOD視頻點(diǎn)播核心技術(shù)研究[J].中山大學(xué)學(xué)報(bào)論叢,2006(2):126-128.
[3]貢知洲,路昭亮.Android發(fā)展的分析和研究[J].價(jià)值工程,2013(2):185-186.
[4]王寧國,吳翠先,劉暢欞,等.基于Android的無線視頻監(jiān)控終端的設(shè)計(jì)及實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2012(2):124-125.
[5]孫宏明.Android手機(jī)程序設(shè)計(jì)入門、應(yīng)用到精通[M].北京:中國水利水電出版社,2012.
[6]李棟,李媛敏,張秋華,等.1080p高清視頻會議系統(tǒng)設(shè)計(jì)應(yīng)用案例[J].電視技術(shù),2010,34(10):108-111.
[7]李彥東,許生旺.AVS-P2和H.264標(biāo)準(zhǔn)的比較[J].無線電工程,2006(8):48-50.
[8]蔣維,孟利民.3G網(wǎng)絡(luò)H.264視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].杭州電子科技大學(xué)學(xué)報(bào),2011,31(5):71-74.
[9]李嚴(yán)冰,張媛.WCDMA 3G無線網(wǎng)絡(luò)建設(shè)、優(yōu)化技術(shù)探討[J].法制與經(jīng)濟(jì),2009(1):116-119.
[10]霍龍社,甘震.移動流媒體協(xié)議綜述[J].信息通信技術(shù),2010(4):6-10.
[11]葉強(qiáng).超文本傳輸協(xié)議——HTTP/1.0[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2004(8):226-271.
[12]彭新宇,姚振強(qiáng).XML技術(shù)在嵌入式系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003(8):133-135.