李 俊,王 靜,吳 巍,陳立水
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊 050081)
網(wǎng)頁版視頻會議是一個以網(wǎng)絡(luò)為媒介的多媒體視頻會議平臺,使用者可突破時間地域的限制,通過互聯(lián)網(wǎng)實(shí)現(xiàn)面對面般的交流效果。系統(tǒng)采用先進(jìn)的音視頻編解碼技術(shù),保證會議清晰地語音和視頻效果。作為一種流行的辦公方式,網(wǎng)頁版視頻會議具有省時、低耗、實(shí)時和廣域的優(yōu)點(diǎn)。
與傳統(tǒng)的基于硬件、軟件的視頻會議解決方案相比,網(wǎng)頁版視頻會議系統(tǒng)是包含即時通訊功能的純網(wǎng)頁解決方案,不需要支付高昂的費(fèi)用購買設(shè)備,不需要下載任何客戶端軟件和插件,只需一臺聯(lián)網(wǎng)的普通電腦以及一般的攝像頭、耳麥,就可以進(jìn)行全球范圍內(nèi)的視頻會議,享受高質(zhì)量、高安全性的音視頻即時通訊、協(xié)同工作、數(shù)據(jù)共享、電子白板等多種會議功能,有效地節(jié)約時間和經(jīng)費(fèi),降低會議成本,提升效率,并以“零碳”排放保護(hù)全球環(huán)境。
網(wǎng)絡(luò)平民化的今天視頻會議會向更高效,更便捷,更安全的方向發(fā)展,網(wǎng)頁版視頻會議應(yīng)運(yùn)而生,這是IT技術(shù)發(fā)展的必然趨勢。
①可以遠(yuǎn)程、實(shí)時召開視頻會議;
②提供電子白板和文檔轉(zhuǎn)換;
③提供桌面共享功能;
④可以進(jìn)行群組聊天;
⑤提供會議邀請和投票功能;
⑥采用B/S結(jié)構(gòu),具有良好的兼容性和擴(kuò)展性,提供良好的QoS保障;
⑦可以預(yù)約會議,會議房間分為公共,私人會議;
⑧與會者和房間具有等級之分,保證高優(yōu)先級的用戶和會議及時加入會議;
⑨與會者可以申請或者被賦予一定的權(quán)限。
1.3.1 視頻會議標(biāo)準(zhǔn)協(xié)議
H.323協(xié)議是國際電信聯(lián)盟電信標(biāo)準(zhǔn)部(ITU-T)制定的多媒體通信協(xié)議族H.32X的主要組成部分,它包括的內(nèi)容有:終端設(shè)備、音頻、視頻和數(shù)據(jù)傳輸、通信控制以及網(wǎng)絡(luò)接口等。定義的4個主要組件:終端、網(wǎng)關(guān)、網(wǎng)守和多點(diǎn)控制單元。
H.323標(biāo)準(zhǔn)使在Internet上召開實(shí)時的視頻會議成為可能。H.323標(biāo)準(zhǔn)涵蓋了包交換網(wǎng)絡(luò)上的音頻、視頻、數(shù)據(jù)通信,解決了點(diǎn)對點(diǎn)以及多點(diǎn)視頻會議中諸如呼叫與會話控制、多媒體與帶寬控制等問題,同時T.120標(biāo)準(zhǔn)為H.323終端增加和擴(kuò)展了數(shù)據(jù)會議的功能,實(shí)現(xiàn)了諸如電子白板(T.126)、多點(diǎn)文件傳輸(T.127)、多點(diǎn)應(yīng)用共享(T.128)等數(shù)據(jù)會議功能。
1.3.2 流媒體技術(shù)和傳輸協(xié)議RTMP
流媒體技術(shù)主要是將聲音、視頻和動畫等數(shù)據(jù)分成一個個壓縮包,向用戶提供連續(xù)的,實(shí)時的傳播,而不必等到整個視頻文件下載完成才能觀看[1]。
RTMP(Real Time Message Protocol)協(xié)議是傳輸層協(xié)議,是基于TCP的協(xié)議。創(chuàng)建的是長連接,被Flash用于數(shù)據(jù)、音頻和視頻的傳輸,它提供了對FLV視頻傳輸?shù)暮芎玫闹С?。在RTMP中控制信息和媒體數(shù)據(jù)都稱之為message。由于RTMP是基于TCP的,并且message的長度很長,所以RTMP采用了一種分片的策略,每一個分片稱為chunk。每一個message被分解成一個或多個chunk。
1.3.3 客戶端和流媒體服務(wù)器之間的交互配置
客戶端監(jiān)聽調(diào)用服務(wù)器端,實(shí)現(xiàn)視頻會議系統(tǒng)的功能,服務(wù)器端也可以通過一些回調(diào)函數(shù)調(diào)用客戶端,用于通知與會者房間信息和其他與會者的狀態(tài)信息等功能。當(dāng)客戶端通過流媒體服務(wù)器連接起來以后,需要得到它們的相關(guān)信息來進(jìn)行管理,以便對作為視頻會議終端的客戶端進(jìn)行組織和安排[3]。
網(wǎng)頁版視頻會議系統(tǒng)的功能模型如圖1所示。本系統(tǒng)采用B/S結(jié)構(gòu)設(shè)計(jì),由服務(wù)器端和客戶端兩大部分組成。服務(wù)器端又分為流媒體服務(wù)器、Web服務(wù)器以及數(shù)據(jù)庫;客戶端只需一臺安裝有一個支持Flash的瀏覽器,攝像頭以及麥克風(fēng)的計(jì)算機(jī),而界面設(shè)計(jì)源碼需要部署到服務(wù)器端,與會者只需在客戶端輸入服務(wù)器地址,即可登錄到用戶登錄與注冊界面。
圖1 網(wǎng)頁版視頻會議系統(tǒng)的功能模型
下面將分別介紹其中的幾個主要功能模塊。
流媒體服務(wù)器是網(wǎng)頁版視頻會議系統(tǒng)中的重要功能模塊,支持把音頻(MP3)和視頻(FLV)轉(zhuǎn)換成播放流,在下載的同時播放流;錄制客戶端播放流,把攝像頭、麥克風(fēng)等傳入的視頻、音頻錄制保存到服務(wù)器;共享對象;現(xiàn)場直播流發(fā)布;遠(yuǎn)程調(diào)用。主流的流媒體服務(wù)器有Macromedia公司的FMS,開源的Red5等。
設(shè)計(jì)采用的流媒體服務(wù)器是Red5。Red5是一個采用Java開發(fā)的開源Flash流媒體服務(wù)器。Red5使用RTMP作為流媒體傳輸協(xié)議。RTMP可以高效地傳輸視頻、音頻和數(shù)據(jù)。在視頻會議系統(tǒng)中,Red5把攝像頭采集的視頻和麥克風(fēng)采集的音頻壓制成MP3和FLV播放流,并按照RTMP標(biāo)準(zhǔn)對媒體信息進(jìn)行組包和解包,利用RTP(實(shí)時傳送協(xié)議)時間戳和緩沖區(qū)結(jié)合對視頻流進(jìn)行控制,同時利用緩沖區(qū)對音頻流定時提取,將音視頻各自同步到一個物理時鐘,保證音視頻同步。
視頻會議系統(tǒng)中的視頻服務(wù)、聊天服務(wù)、音頻服務(wù)和電子白板等都將部署到此服務(wù)器。
設(shè)計(jì)方案中,Web服務(wù)器基于Java編程語言,其主要負(fù)責(zé)會議進(jìn)程的管理與控制,創(chuàng)建會議的優(yōu)先級,與會者的優(yōu)先級以及與會者的角色管理。
用戶通過在PC客戶端瀏覽器加入本系統(tǒng)后,可以創(chuàng)建會議、加入會議。用戶創(chuàng)建會議時,服務(wù)器首先查詢數(shù)據(jù)庫,判別系統(tǒng)中會議數(shù)是否達(dá)到最大限度,創(chuàng)建人是否合法以及優(yōu)先級。當(dāng)與會者要參加會議時,服務(wù)器首先判別該用戶是否合法,要加入的會議是否存在,與會者是由達(dá)到會議人數(shù)上限,以及該與會者的優(yōu)先級[4]。圖2說明了Web服務(wù)器與數(shù)據(jù)庫和客戶端的交互。
圖2 Web服務(wù)器的交互流程圖
設(shè)計(jì)方案中采用的數(shù)據(jù)庫是MySQL,保存與會者的注冊信息、登錄信息、狀態(tài)信息和權(quán)限信息,保存會議室的配置信息等。
客戶端是與會者和服務(wù)器進(jìn)行交互的界面,主要完成用戶的注冊與登錄、創(chuàng)建會議、加入會議、會議室管理以及與會者權(quán)限管理。
網(wǎng)頁版視頻會議服務(wù)器端采用Java編程語言開發(fā),采用了Spring和 Hibernate框架,其中 Hibernate是目前最流行的開源對象關(guān)系映射框架,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。由于Java語言的平臺無關(guān)性,所以開發(fā)的網(wǎng)頁版視頻會議系統(tǒng)的服務(wù)器端可以部署在Windows、Linux和MacOS等系統(tǒng)上。
Red5服務(wù)器上需要實(shí)現(xiàn)的服務(wù)是視頻服務(wù)、聊天服務(wù)、音頻服務(wù)和電子白板。
視頻服務(wù)實(shí)現(xiàn)的是與會者之間的視頻交互,完成視頻的邀請,本地視頻流的發(fā)布以及遠(yuǎn)端視頻流的獲取。召開視頻會議時,各個與會者的視頻流都將發(fā)布并保存到Red5服務(wù)器上,與會者需要從Red5服務(wù)器上獲取其他與會者的視頻流。
聊天服務(wù)實(shí)現(xiàn)與會者之間的群組聊天和私聊。群組聊天采用廣播的方式,發(fā)言者發(fā)布消息,會議室中的所有與會者都將接收到聊天消息。私聊是2個與會者之間的信息交互。
音頻服務(wù)實(shí)現(xiàn)與會者之間的話音交流,包括兩方之間和多方之間的交流。
Red5服務(wù)器上各個服務(wù)程序啟動前,首先須要啟動Red5服務(wù)器:
Red5應(yīng)用程序啟動時自動執(zhí)行此方法:public boolean appStart(IScope arg0);
Red5應(yīng)用程序停止時自動執(zhí)行此方法:public void appStop(IScope arg0);
Flex客戶端連接項(xiàng)目時自動運(yùn)行此方法:
public boolean appConnect(IConnection arg0,Object[]arg1);
flex客戶端與服務(wù)器斷開連接時觸發(fā)的方法:
public void appDisconnect(IConnection arg0);
Web服務(wù)器需要實(shí)現(xiàn)的是房間管理、發(fā)言控制與角色管理。
會議室管理主要是會議室的創(chuàng)建人對會議室進(jìn)行的配置。設(shè)置會議室最大與會人數(shù),保證會議的音視頻質(zhì)量;設(shè)置會議室的類型,包括私人會議、公共會議、視頻會議和音頻會議。設(shè)置會議室賬號與密碼,保證會議的安全。
角色管理實(shí)現(xiàn)與會者權(quán)限的分配。會議主持人可以賦予與會者一定的權(quán)限,與會者也可以向主持人申請權(quán)限。
發(fā)言管理保障會議的有序進(jìn)行,會議主持人指定會議中的發(fā)言人以及發(fā)言順序。
在MySQL上創(chuàng)建本系統(tǒng)數(shù)據(jù)庫,用來保存與會者的注冊信息、狀態(tài)信息、權(quán)限信息和會議室的狀態(tài)信息。red5服務(wù)器和web服務(wù)器與數(shù)據(jù)庫進(jìn)行信息之間的交互,完成用戶的注冊登錄等功能。與會者注冊時,注冊信息需要保存到數(shù)據(jù)庫中;與會者登錄時,服務(wù)器需要調(diào)用數(shù)據(jù)庫中的與會者信息。
系統(tǒng)設(shè)計(jì)的客戶端界面由客戶端界面由用戶的注冊與登錄界面、會議室界面和管理界面組成。與會者首次登錄需要在登陸與注冊界面完成注冊信息,填寫用戶名、密碼、聯(lián)系方式和電子郵箱等信息,提交并保存到數(shù)據(jù)庫中。與會者注冊完就可登錄系統(tǒng)參加視頻會議。在會議室管理界面,主持人進(jìn)行會議室的配置[6]。
客戶端在Flash Builder 4.6平臺上進(jìn)行開發(fā),編寫mxml文件,編譯完成后是一個Flash的形式即swf文件,將其部署到服務(wù)器端red5安裝目錄下。召開視頻會議時,啟動服務(wù)器,與會者輸入服務(wù)器端地址,即可登錄到視頻會議客戶端界面。Mxml文件主要由不同的function和組件構(gòu)成。
不同的函數(shù)function調(diào)用服務(wù)器端相應(yīng)的方法,實(shí)現(xiàn)相應(yīng)的功能。組件主要是構(gòu)建客戶端界面,友好的用戶界面方便與會者操作??蛻舳撕头?wù)器端的連接由語句private var rtmpURL:String=”rtmp://192.168.1.6/webmeetings”實(shí)現(xiàn)。
在服務(wù)器上red5的安裝目錄下webapps文件夾下新建一個以工程命名的文件夾,把myapp文件夾中的WEB-INF文件夾復(fù)制到webapps里,然后新建lib、class、src三個文件夾,分別用來存放服務(wù)源碼,class文件和jar文件。然后對red5-web.properties,red5-web.xml,web.xml進(jìn)行配置,其中:
重新啟動Red5服務(wù)器,在客戶端輸入服務(wù)器地址,即可參加視頻會議,體驗(yàn)系統(tǒng)功能。
本次試驗(yàn)環(huán)境為1個局域網(wǎng),由1臺服務(wù)器和4臺客戶端組成,圖3為搭建的試驗(yàn)環(huán)境。服務(wù)器安裝windows xp系統(tǒng),需要安裝jdk,red5服務(wù)器軟件,與會者一、與會者二、與會者三和與會者四的計(jì)算機(jī)都需安裝IE8.0瀏覽器,1個攝像頭,1個麥克風(fēng)。每個與會者輸入服務(wù)器地址,端口號和服務(wù)名稱即可登錄本視頻會議系統(tǒng),完成注冊,登錄、創(chuàng)建及加入會議。本次試驗(yàn)的服務(wù)器地址為http://192.168.1.6:8080:webmeetings。本次試驗(yàn)進(jìn)行了兩方音/視頻會議和多方視頻會議的測試。
圖3 搭建的試驗(yàn)環(huán)境
本系統(tǒng)實(shí)現(xiàn)了兩方音/視頻會議,雙方之間實(shí)現(xiàn)了語音和視頻交流,話音清晰,圖像流暢,雙方還進(jìn)行了白板,桌面共享,文字聊天等;并且還召開了一個多方視頻會議,實(shí)現(xiàn)了多方之間私聊、群聊、白板、桌面共享和音頻視頻交流等。
經(jīng)測試證明此系統(tǒng)實(shí)現(xiàn)了網(wǎng)頁版視頻會議所設(shè)計(jì)的功能,能夠進(jìn)行視頻會議。
網(wǎng)頁版視頻會議系統(tǒng)在節(jié)省時間、降低成本和提升效率方面明顯強(qiáng)于傳統(tǒng)的硬件和軟件視頻會議系統(tǒng)。通信技術(shù)和計(jì)算機(jī)技術(shù)的快速發(fā)展,必將促進(jìn)網(wǎng)頁版視頻會議系統(tǒng)的高速發(fā)展和大量普及。網(wǎng)頁版視頻會議今后的研究熱點(diǎn)主要是音視頻的編解碼技術(shù)和QoS保障[8],以進(jìn)一步提高網(wǎng)頁版視頻會議系統(tǒng)的音/視頻效果和數(shù)據(jù)協(xié)作能力。
[1]齊俊杰,胡浩.流媒體技術(shù)入門與提高[M].北京:國防工業(yè)出版社,2009.
[2]張洪斌.例解Java Web開發(fā)技術(shù)Framework draft-ietfmediactrl-sip-control-framework-11[S],2009.
[3]陸明,王旭東.基于FLV流媒體技術(shù)的視頻會議系統(tǒng)設(shè)計(jì)[J].吉林大學(xué)學(xué)報(bào),2010,28(2):23-25.
[4]陶安祥.基于Web2.0的視頻會議系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2009:24-54.
[5]鐘經(jīng)偉.貫通Tomcat開發(fā)[M].北京:電子工業(yè)出版社,2008.
[6]吳衍平.對當(dāng)前視頻會議領(lǐng)域若干技術(shù)熱點(diǎn)的綜述[J].中國多媒體通信,2007(4):35-37.
[7]程佳亮.高清視頻會議系統(tǒng)一體精髓[M].北京:清華大學(xué)出版社,2008:122-135.