趙曉焱 張會(huì)芝
(河南師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,河南 新鄉(xiāng) 453007)
基于H.323協(xié)議的視頻會(huì)議系統(tǒng)
趙曉焱 張會(huì)芝
(河南師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,河南 新鄉(xiāng) 453007)
視頻會(huì)議系統(tǒng)是一種基于分組交換網(wǎng)絡(luò)的多媒體通訊系統(tǒng),針對(duì)多媒體網(wǎng)絡(luò)通訊的特點(diǎn),分析了基于H.323協(xié)議的開(kāi)源項(xiàng)目OpenH 323,提出了一種面向?qū)ο蟮南到y(tǒng)架構(gòu),對(duì)系統(tǒng)中的對(duì)象做了詳細(xì)的介紹,并給出了終端和多點(diǎn)控制單元(MCU)的詳細(xì)實(shí)現(xiàn)過(guò)程。
視頻會(huì)議;分組交換;多點(diǎn)控制單元
隨著計(jì)算機(jī)通信技術(shù)的發(fā)展以及互聯(lián)網(wǎng)帶寬的不斷增大,分組交換網(wǎng)絡(luò)的可視電話和視頻會(huì)議系統(tǒng)已廣泛應(yīng)用于各個(gè)領(lǐng)域[1]。為了使得各個(gè)不同的可視電話廠商生產(chǎn)的產(chǎn)品互通,國(guó)際電信聯(lián)盟(ITU)制定了在分組交換網(wǎng)絡(luò)上運(yùn)行的視頻會(huì)議通訊標(biāo)準(zhǔn)H.323[2]。H.323包括了H.245、H.225等一系列協(xié)議,主要描述了基于分組的多媒體通信系統(tǒng)的概念、結(jié)構(gòu)以及呼叫流程[3]。標(biāo)準(zhǔn)的制定更加促進(jìn)了視頻會(huì)議的發(fā)展與普及,因而視頻會(huì)議相關(guān)技術(shù)已經(jīng)成為業(yè)界和學(xué)術(shù)界的一個(gè)研究熱點(diǎn)。
OpenH323項(xiàng)目是澳大利亞的Equivalence Pty Ltd公司組織開(kāi)發(fā)的H323協(xié)議框架,實(shí)現(xiàn)了一套復(fù)雜的H.323通訊系統(tǒng),主要是免費(fèi)提供給所有想從事VOIP和網(wǎng)絡(luò)視頻傳輸?shù)能浖_(kāi)發(fā)商使用。OpenH323協(xié)議庫(kù)完全符合H.323協(xié)議的,能和任何符合該協(xié)議的軟件進(jìn)行視頻和語(yǔ)音通訊。當(dāng)兩個(gè)終端進(jìn)行通信時(shí),一端向另一端的H.323端口1 720建立一條連接。然后,兩終端在此連接上發(fā)送Q.931包,在這些交換的數(shù)據(jù)包中,兩終端發(fā)送動(dòng)態(tài)的端口用于建立H.245連接。H.245處理所有的呼叫參數(shù)協(xié)商,例如所要用的編碼解碼算法等。一旦這些參數(shù)協(xié)商完畢,H.245會(huì)話開(kāi)始執(zhí)行Open Logical Channel過(guò)程,為特定的媒體流(如音頻或視頻)建立邏輯通道。然后,這些媒體流就可以在兩個(gè)終端之間進(jìn)行傳輸,直到會(huì)話結(jié)束。
OpenH323項(xiàng)目為了兼容不同的操作系統(tǒng),編寫(xiě)了能兼容LINUX和WINDOWS系統(tǒng)的類庫(kù)PWLIB,PTLIB,使得在這些類庫(kù)上層的OpenH323庫(kù)能夠跨平臺(tái)使用。OpenH323的優(yōu)勢(shì)在于它比較完整的實(shí)現(xiàn)了ITU關(guān)于H.323的建議,可以實(shí)現(xiàn)基于IP的各種電話應(yīng)用,包括語(yǔ)音、視頻、會(huì)議以及傳真等。通過(guò)該協(xié)議可以定制出自己需要的各種H.323實(shí)體,對(duì)商業(yè)用戶和個(gè)人開(kāi)發(fā)者來(lái)說(shuō)都具有很大的吸引力,本文提出的視頻會(huì)議系統(tǒng)就是基于OpenH323項(xiàng)目進(jìn)行開(kāi)發(fā)。
H.323會(huì)議系統(tǒng)中傳輸?shù)男畔⒘髦邪纛l、視頻、數(shù)據(jù)和控制信息[4]。所有的信息流均采用H.225協(xié)議來(lái)進(jìn)行打包和傳送。為了實(shí)現(xiàn)在會(huì)議系統(tǒng)中傳輸上述信息流,H.323協(xié)議定義的多媒體會(huì)議系統(tǒng)主要由終端、網(wǎng)閘(Gatekeeper)、網(wǎng)關(guān)(Gateway)、多點(diǎn)控制器(MC)、多點(diǎn)處理器(MP)和多點(diǎn)控制單元(MCU)等組成,如圖1所示。

圖 1 H.323視頻會(huì)議系統(tǒng)組成
H.323終端是能夠在分組交換網(wǎng)絡(luò)中提供實(shí)時(shí)、雙向通信的節(jié)點(diǎn)設(shè)備。網(wǎng)守是H.323系統(tǒng)的一個(gè)可選組件,其功能是向H.323終端提供呼叫控制服務(wù)。多點(diǎn)控制單元可以用于支持三個(gè)以上終端設(shè)備的會(huì)議。在H.323系統(tǒng)中,一個(gè)多點(diǎn)控制單元由一個(gè)多點(diǎn)控制器(MC)和幾個(gè)多點(diǎn)處理器(MP)組成,但也可以不包含MP。網(wǎng)關(guān)是H.323會(huì)議系統(tǒng)的一個(gè)可選件,網(wǎng)關(guān)能提供很多服務(wù),其中包含H.323會(huì)議節(jié)點(diǎn)設(shè)備與其他ITU標(biāo)準(zhǔn)相兼容的終端之間的轉(zhuǎn)換功能,這種功能包括數(shù)據(jù)傳輸格式(如H.225.0到H.221)和通信規(guī)程的轉(zhuǎn)換(如H.245到H.242)。
基于OpenH323視頻會(huì)議系統(tǒng)的實(shí)現(xiàn)主要包含終端的實(shí)現(xiàn)和MCU的實(shí)現(xiàn)。應(yīng)用程序一般要建立一個(gè)H323EndPoint類的派生類實(shí)例。通過(guò)H323Endpoint類可以直接或者間接地對(duì)整個(gè)OpenH323協(xié)議的各種主要的類進(jìn)行調(diào)用和處理派生類,H323 Endpoint類封裝了很多的方法。當(dāng)響應(yīng)應(yīng)用程序?qū)崿F(xiàn)H323Endpoint的類的派生時(shí),通常會(huì)定義在H323協(xié)議棧中沒(méi)有定義的屬性和方法,這些屬性和方法用于設(shè)定終端的一些初始化的,或者基本的屬性。例如振鈴時(shí)播放的音樂(lè)文件的名稱,缺省的呼叫設(shè)置,終端的能力集等。
而在每個(gè)H323EndPoint類中,一般會(huì)創(chuàng)建一個(gè)或者多個(gè)H323Listener類的派生類的實(shí)例,每一個(gè)實(shí)例對(duì)應(yīng)于后臺(tái)處理的守聽(tīng)線程。當(dāng)檢測(cè)到新的呼入時(shí),就會(huì)創(chuàng)建一個(gè)H323Transport類的實(shí)例,負(fù)責(zé)信息的網(wǎng)絡(luò)傳輸。
4.1 終端實(shí)現(xiàn)
OpenH323網(wǎng)站有兩個(gè)終端的源代碼:OpenPhone和OhPhone,OhPhone是一個(gè)命令行的終端程序,負(fù)責(zé)傳輸音頻。OpenPhone是一個(gè)基于PWLib庫(kù)的窗口程序,可以傳輸視頻,但支持的視頻標(biāo)準(zhǔn)只有未能實(shí)現(xiàn)完整的H.261標(biāo)準(zhǔn)。由于終端直接面對(duì)用戶,所以在一定程度上界面設(shè)計(jì)要美觀,而基于PWLib圖像庫(kù)的界面元素太少,而且界面對(duì)象使用起來(lái)也不方便,因此本文視頻會(huì)議終端使用PWLIB中與GUI無(wú)關(guān)的類庫(kù),如I/O功能API、多線程API、時(shí)間函數(shù)API等,而對(duì)于與GUI有關(guān)的部分,采用MFC類庫(kù)進(jìn)行開(kāi)發(fā),保證了用戶終端的親和性和美觀性。
OpenPhone本地視頻采集和視頻圖像的顯示效果不理想。視頻采集時(shí)效率很低下,視頻采集圖像幀率的最大值為10幀左右。即使視頻解碼器可以計(jì)算更高幀率的視頻圖像,但由于視頻采集的瓶頸,還是會(huì)使得圖像的幀率變低,停頓比較明顯,降低了圖像的顯示效果,浪費(fèi)了視頻會(huì)議終端的計(jì)算能力。為了解決這個(gè)問(wèn)題,新的終端采用了DIRECTSHOW中的視頻采集技術(shù),使得視頻圖像的采集幀率可以達(dá)到20幀。對(duì)于圖像的顯示,原來(lái)的OpenPhone的顯示效率也很低下,所以顯示模塊改為DIRECTDRAW的顯示方式。
圖2描述了視頻會(huì)議終端的實(shí)現(xiàn),其中視頻采集模塊由類PVideoInputDevice來(lái)實(shí)現(xiàn)。由于該實(shí)現(xiàn)類的采集效果不理想,本文使用其派生類CVideoInputDevice來(lái)實(shí)現(xiàn)DIRECTSHOW的視頻采集技術(shù),利用C++語(yǔ)言的多態(tài)性,將原來(lái)代碼創(chuàng)建PVideoInputDevice對(duì)象改變?yōu)閯?chuàng)建其派生類CVideoInputDevice的對(duì)象,可以繼續(xù)用基類PVideoInputDevice的指針來(lái)指向派生類CVideoInputDevice的對(duì)象,使得在程序大框架不改動(dòng)的情況下,迅速地加入增強(qiáng)功能。同樣,也可以用PVideoOutputDevice的一個(gè)新的派生類CVideoOutputDevice來(lái)實(shí)現(xiàn)性能更好的視頻顯示功能。

圖 2 視頻會(huì)議終端的實(shí)現(xiàn)框圖
4.2 MCU實(shí)現(xiàn)
圖3為MCU的實(shí)現(xiàn)框圖,通過(guò)與終端的實(shí)現(xiàn)框圖比較可以看到,終端的實(shí)現(xiàn)和MCU的實(shí)現(xiàn)大致一樣,這樣就有利于終端和MCU能共享一個(gè)底層的H.323庫(kù),盡量減少重復(fù)開(kāi)發(fā)的工作量。圖3中的InComingVideo類繼承于類PVideoChannel,Outgo?ingChannel類繼承于PVideoChannel,現(xiàn)在只需要建立一個(gè)視頻數(shù)據(jù)的混合區(qū),并在視頻圖像混合完成后進(jìn)行字符疊加,使得InComingVideo類中的視頻數(shù)據(jù)寫(xiě)入到視頻混合區(qū),Outgo?ingChannel類從視頻混合區(qū)中讀取經(jīng)過(guò)字符疊加后的視頻圖像,而整個(gè)程序的大框架無(wú)需改動(dòng),便可以用類似于視頻會(huì)議終端一樣的實(shí)現(xiàn)方法,實(shí)現(xiàn)MCU的功能以及音頻混音的功能。
當(dāng)前視頻會(huì)議的規(guī)模不斷擴(kuò)大,使得MCU要容納的接入終端數(shù)不斷增多,接入終端顯示一般采用多畫(huà)面的形式。本文實(shí)現(xiàn)的視頻會(huì)議系統(tǒng)從原來(lái)只支持4畫(huà)面擴(kuò)展為可以支持4畫(huà)面,8畫(huà)面,9畫(huà)面,16畫(huà)面,并實(shí)現(xiàn)單畫(huà)面輪轉(zhuǎn)等功能。同時(shí),由于視頻會(huì)議系統(tǒng)中的MCU和各個(gè)終端可能處于不同的地理位置,MCU的位置只可能有一個(gè),如何實(shí)現(xiàn)遠(yuǎn)程控制并配置MCU是一個(gè)急需解決的問(wèn)題。針對(duì)這個(gè)問(wèn)題,本文增加了一個(gè)基于瀏覽器的Web服務(wù)程序的MCU服務(wù)器遠(yuǎn)程配置管理系統(tǒng)。它可以使遠(yuǎn)程用戶在授權(quán)的情況下,遠(yuǎn)程進(jìn)行MCU的配置管理工作。

圖3 視頻會(huì)議MCU的實(shí)現(xiàn)框圖
視頻會(huì)議系統(tǒng)中視頻會(huì)議系統(tǒng)是一種基于分組交換網(wǎng)絡(luò)的多媒體通訊系統(tǒng),所有的呼叫信令,控制信令,多媒體數(shù)據(jù)最終都是打成IP包的形式進(jìn)行傳輸。本文分析了這種多媒體網(wǎng)絡(luò)通訊的特點(diǎn),提出了一種基于開(kāi)源的OpenH323項(xiàng)目的視頻會(huì)議系統(tǒng)。本文提出的H.323視頻會(huì)議系統(tǒng)已成功應(yīng)用于實(shí)際網(wǎng)絡(luò)數(shù)據(jù)處理中, 實(shí)踐證明該技術(shù)是一項(xiàng)可行的音視頻流捕獲技術(shù)。
[1]謝瑩凌,培剛.H.323視頻會(huì)議媒體流捕獲技術(shù)[J].電信技術(shù)研究,2012,42(4):12-16.
[2]ITU-T Recommendation.H.323 Packed-based multimedia communications systems[S].2003,07.
[3]李潔,吳正茂.移動(dòng)終端實(shí)現(xiàn)視頻會(huì)議的解決方案研究[J].電視技術(shù),2012,36(19):193-195.
[4]孫少鵬,趙旨忠.基于Asterisk的SIP/H.323視頻網(wǎng)關(guān)研究[J].信息系統(tǒng)與網(wǎng)絡(luò),2013,43(6):6-9.
TN949.6
B
1671-0037(2014)04-80-2
國(guó)家自然科學(xué)基金(U1204609);河南省科學(xué)技術(shù)重點(diǎn)研究項(xiàng)目(14A510011)。
趙曉焱(1981-),女,講師,碩士,研究方向:多媒體網(wǎng)絡(luò)通信。