(1.福州大學(xué)物理與信息工程學(xué)院 福建 福州 350108;2.建星網(wǎng)銳捷通訊股份有限公司 福建 福州 350002)
基于Android平臺(tái)的多媒體終端四方視頻會(huì)議系統(tǒng)設(shè)計(jì)
余秀容1,2陳傳峰1
(1.福州大學(xué)物理與信息工程學(xué)院福建福州350108;2.建星網(wǎng)銳捷通訊股份有限公司福建福州350002)
近年來(lái),視頻會(huì)議越來(lái)越流行,常用的視頻會(huì)議系統(tǒng)一般都是那種會(huì)議室型視頻會(huì)議系統(tǒng),提供會(huì)議服務(wù)控制的是專門的MCU多點(diǎn)控制單元設(shè)備。這種系統(tǒng)部署復(fù)雜而且成本較高,屬于大型視頻會(huì)議,其舉行會(huì)議的場(chǎng)所比較固定,處理靈活性、方便性、快速性都比較差。本文就在這種大型視頻會(huì)議系統(tǒng)中可作為被動(dòng)參會(huì)方的多媒體終端上實(shí)現(xiàn)主動(dòng)發(fā)起四方視頻會(huì)議來(lái)滿足各種小范圍的隨時(shí)隨地的小型多方會(huì)議溝通需求。在SVP3300這款多媒體終端硬件平臺(tái)、Android軟件平臺(tái)上實(shí)現(xiàn)四方視頻會(huì)議控制系統(tǒng),利用開源的SIP協(xié)議框架實(shí)現(xiàn)會(huì)議通話,WebRTC技術(shù)實(shí)現(xiàn)視頻媒體處理。
視頻會(huì)議;多媒體終端;四方視頻;Android;SIP;WebRTC
近幾年來(lái),視頻會(huì)議發(fā)展迅速,因?yàn)樗軌蜃屔硖幃惖氐呐c會(huì)人通過(guò)網(wǎng)絡(luò)視頻就能達(dá)到面對(duì)面溝通交流的效果,省去了舟車勞頓的差旅,節(jié)約了大量的時(shí)間成本,實(shí)現(xiàn)了高效、便捷和低成本。目前較為常用的服務(wù)于各行各業(yè)的專有性視頻會(huì)議系統(tǒng)是會(huì)議室型視頻會(huì)議系統(tǒng)[1],就是在一個(gè)大會(huì)議室里有專門的視頻會(huì)議終端、麥克風(fēng)、攝像機(jī)、音箱、電視機(jī)等,參會(huì)人員圍坐在會(huì)議室里與另外一頭具有類似裝置的人們一起開會(huì)溝通,真正還有一端提供這一系列服務(wù)的服務(wù)端,即MCU多點(diǎn)控制單元。
其中作為參會(huì)方的視頻會(huì)議終端設(shè)備主要完成音視頻信號(hào)發(fā)送和接收任務(wù),就是音視頻輸入輸出的載體而已,當(dāng)會(huì)議終端達(dá)到三個(gè)或三個(gè)以上時(shí)必須使用MCU多點(diǎn)控制單元來(lái)進(jìn)行調(diào)度管理[2]。即多媒體終端在這樣的會(huì)議系統(tǒng)中充當(dāng)?shù)慕巧潜粍?dòng)參會(huì)或者主動(dòng)參會(huì)情況也僅僅是申請(qǐng)加入會(huì)議,必須要得到MCU服務(wù)器允許后才能加入,所有的會(huì)議控制均在MCU服務(wù)器上進(jìn)行統(tǒng)一管理。
這種專用的視頻會(huì)議系統(tǒng)存在以下缺陷:首先,部署復(fù)雜而且成本較高,需要花費(fèi)較多的費(fèi)用去購(gòu)買設(shè)備和布置會(huì)議場(chǎng)所;其次,在要開啟會(huì)議視頻之前,會(huì)議主持方需要事先通知各個(gè)會(huì)場(chǎng)的會(huì)議參與方,以方便各參與方做各種會(huì)前準(zhǔn)備,屬于大型視頻會(huì)議,其舉行會(huì)議的場(chǎng)所比較固定,處理靈活性、方便性、快速性都比較差,很多時(shí)候都無(wú)法適應(yīng)實(shí)際的使用需求。因此目前更需要的是能夠在任何時(shí)間任何地點(diǎn)舉行簡(jiǎn)單的小型多方會(huì)議的多媒體終端設(shè)備,來(lái)滿足小范圍的隨時(shí)隨地的多方視頻會(huì)議溝通需求。
本課題是在型號(hào)為“SVP3300”的多媒體設(shè)備終端上實(shí)現(xiàn)四方視頻會(huì)議系統(tǒng),相對(duì)于普通的視頻話機(jī)的亮點(diǎn)就在于其自有的會(huì)議系統(tǒng),在沒(méi)有MCU的條件下組建會(huì)議系統(tǒng),使直接接入網(wǎng)絡(luò)的幾臺(tái)終端之間就能夠進(jìn)行視頻會(huì)議。
(一)硬件平臺(tái)和總體功能分析
視頻會(huì)議系統(tǒng)是在“SVP3300”這款多媒體終端設(shè)備上進(jìn)行研究開發(fā)的,該設(shè)備采用海思Hi3798MV100方案為主控,內(nèi)存為1GB DDR3,8GB e-MMC,采用LVDS接口的8寸1024×600分辨率液晶模組,觸屏使用P+G貼框方案;攝像頭使用USB接口,最大傳輸率720p @30fps,還包括USB、WIFI、藍(lán)牙、以太網(wǎng)、麥克風(fēng)、喇叭、手柄、若干按鍵等等硬件體系平臺(tái)上。
因此從硬件上看已經(jīng)具備了視頻會(huì)議的基本硬件支持要素,基于此主要就是要從軟件上實(shí)現(xiàn)完整的視頻會(huì)議業(yè)務(wù)功能,包括發(fā)起會(huì)議、結(jié)束會(huì)議、會(huì)議過(guò)程控制以及多方視頻圖像顯示等等。歸納起來(lái)包含三大模塊:視頻通話會(huì)話管理、視頻媒體數(shù)據(jù)處理以及上層UI呈現(xiàn)與操作。利用開源的Android系統(tǒng)作為操作系統(tǒng),開發(fā)上層UI應(yīng)用,開源的PJSIP協(xié)議棧實(shí)現(xiàn)視頻通話會(huì)話管理、開源的WebRTC技術(shù)實(shí)現(xiàn)視頻媒體數(shù)據(jù)處理。
(二)軟件相關(guān)技術(shù)
1.Android系統(tǒng)
多媒體終端視頻會(huì)議系統(tǒng)是基于Android平臺(tái)進(jìn)行開發(fā)的,Android最大特點(diǎn)在于它是一個(gè)開放的體系架構(gòu),系統(tǒng)架構(gòu)從下往上大致可分為四層:Linux內(nèi)核層、系統(tǒng)運(yùn)行層、應(yīng)用框架層、應(yīng)用層。上層依賴下層或底層提供的各種功能或服務(wù),它們之間相互獨(dú)立且分工明確,這種分層結(jié)構(gòu)保證了層與層之間的低耦合,當(dāng)下層的層內(nèi)或?qū)酉掳l(fā)生改變時(shí),上層應(yīng)用無(wú)需任何改變,開發(fā)者可專注于應(yīng)用層的開發(fā)。
Android提供了兩種開發(fā)工具:SDK和NDK。SDK主要采用Java開發(fā),把C/C++排除在外,而NDK提供了把C/C++代碼編成.so的方案,來(lái)讓Java通過(guò)JNI方式調(diào)用最終執(zhí)行在Dalvik虛擬機(jī)中,即APK應(yīng)用。上層UI應(yīng)用使用Java語(yǔ)言直接在Android上調(diào)用相關(guān)的SDK進(jìn)行開發(fā),而SIP協(xié)議、視頻處理等均是通過(guò)C/C++代碼來(lái)完成的,利用NDK編譯成.so庫(kù)放到android系統(tǒng)中最終和上層UI應(yīng)用一起編譯成apk應(yīng)用。
2.SIP協(xié)議
多媒體終端視頻會(huì)議系統(tǒng)是基于IP網(wǎng)絡(luò)的SIP協(xié)議通話系統(tǒng)。SIP是一種源于互聯(lián)網(wǎng)的IP語(yǔ)音會(huì)話控制協(xié)議[3],可以用來(lái)建立、修改和終止多媒體會(huì)話,也可以邀請(qǐng)參與者參加已經(jīng)存在的會(huì)話,比如多方會(huì)議。SIP協(xié)議本身不提供服務(wù),但是它提供了一個(gè)基礎(chǔ),可以和其它協(xié)議一起給用戶提供完整的服務(wù),包括RTP(實(shí)時(shí)傳輸協(xié)議)、RTSP(實(shí)時(shí)流協(xié)議)、SDP(會(huì)話描述協(xié)議)等。SIP協(xié)議是一個(gè)點(diǎn)對(duì)點(diǎn)協(xié)議,所以它只需要一個(gè)相對(duì)簡(jiǎn)單的核心網(wǎng)絡(luò),而將處理工作下放給連接在網(wǎng)絡(luò)邊緣的智能端點(diǎn),即多媒體終端便可。SIP協(xié)議還是一個(gè)文本協(xié)議,所以易于調(diào)測(cè),結(jié)構(gòu)靈活,可用TCP或UDP(推薦UDP),同時(shí)呼叫和媒體信息同時(shí)傳送(媒體信息的傳送由SDP傳送),SIP“會(huì)話”還傳輸一些簡(jiǎn)單的經(jīng)過(guò)封包的實(shí)時(shí)傳輸協(xié)議流,RTP本身才是語(yǔ)音與視頻的載體。
采用PJSIP這個(gè)開源的源碼來(lái)針對(duì)多媒體終端的視頻會(huì)議會(huì)話管理進(jìn)行開發(fā)。PJSIP代碼層次非常清晰,從低級(jí)到高級(jí)都提供了很方便的接口供開發(fā),主要層次包括PJSIP(SIP協(xié)議棧)、PJMEDIA(媒體棧)、PJNATH(NAT-T輔助庫(kù))、PJLIB-UTIL(輔助工具庫(kù))、PJLIB(基礎(chǔ)框架庫(kù)),其中PJLIB作為最基礎(chǔ)的庫(kù),發(fā)揮著重要作用。PJLIB提供了非動(dòng)態(tài)內(nèi)存分配,實(shí)現(xiàn)了內(nèi)存池,獲取內(nèi)存是從分配的內(nèi)存池中獲取。因此PJSIP只要極小的內(nèi)存和CPU需求就能實(shí)現(xiàn)高效的性能,還支持多種SIP功能擴(kuò)展,例如多人會(huì)話、會(huì)話控制、即時(shí)信息等等。
綜上,選用PJSIP來(lái)實(shí)現(xiàn)視頻會(huì)議的賬號(hào)注冊(cè)和呼叫整個(gè)過(guò)程完全是可行的,而且它能夠使用極小的硬件資源實(shí)現(xiàn)高性能的會(huì)話管理功能。
3.WebRTC技術(shù)
WebRTC[4](Web Real-Time Communication,網(wǎng)絡(luò)實(shí)時(shí)通信)主要是讓W(xué)eb開發(fā)者能夠基于瀏覽器輕易快捷開發(fā)出豐富的實(shí)時(shí)多媒體應(yīng)用。雖然WebRTC很明確是提供給瀏覽器應(yīng)用開發(fā)的,但是WebRTC提供了視頻會(huì)議的核心技術(shù),包括音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸、顯示等功能,并且還支持跨平臺(tái):windows,linux,mac,android,iOS等。其中視頻引擎以實(shí)現(xiàn)從攝像頭數(shù)據(jù)采集到網(wǎng)絡(luò)數(shù)據(jù)傳輸、以及從網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)到屏幕顯示的過(guò)程功能提供了整套的解決框架。
在視頻處理方面,WebRTC視頻處理引擎是從視頻采集設(shè)備到視頻處理流程的功能集合,引擎中包括了采集設(shè)備的控制、視頻數(shù)據(jù)的編碼、圖像質(zhì)量監(jiān)控以及網(wǎng)絡(luò)安全控制等功能。WebRTC采用VP8編碼技術(shù),能在較低編碼率的環(huán)境中保持較高的視頻質(zhì)量,這對(duì)視頻會(huì)議系統(tǒng)來(lái)說(shuō)具有至關(guān)重要的意義和作用。還給出了視頻抖動(dòng)緩沖器模塊,能夠有效降低由視頻信息包丟失和視頻抖動(dòng)所帶來(lái)的不良影響,以及提供了顏色增強(qiáng)、降噪處理等功能,從而提升了圖像的質(zhì)量。WebRTC還可以將H264集成到視頻模塊框架中,從而使用設(shè)備的硬件加速功能進(jìn)一步提高編解碼效率。
因此選擇強(qiáng)大的WebRTC視頻引擎來(lái)作為實(shí)現(xiàn)多媒體終端上四方視頻會(huì)議視頻媒體庫(kù)基礎(chǔ)框架。它能夠有效解決硬件性能較低、網(wǎng)絡(luò)帶寬受限等等問(wèn)題,讓基于IP網(wǎng)絡(luò)的視頻會(huì)議能夠清晰流暢。
通過(guò)對(duì)以上的Android系統(tǒng)、SIP協(xié)議技術(shù)、WebRTC技術(shù)的分析,基于SVP3300這款多媒體終端,結(jié)合三者可以實(shí)現(xiàn)多媒體終端上視頻會(huì)議系統(tǒng),但是多媒體終端的硬件性能與網(wǎng)絡(luò)帶寬資源仍然是制約視頻會(huì)議能否清晰流暢的關(guān)鍵因素所在,而且要滿足四方視頻會(huì)議系統(tǒng)更是要對(duì)軟件上的一些不足做改進(jìn)。
(一)如何有效降低多媒體終端CPU的負(fù)荷
現(xiàn)有技術(shù)要在多媒體終端實(shí)現(xiàn)四方視頻會(huì)議的做法如下:在參會(huì)終端B、C、D向主持終端A傳送攝像頭采集的壓縮視頻數(shù)據(jù)時(shí),主持終端A首先會(huì)對(duì)接收的壓縮視頻數(shù)據(jù)進(jìn)行解碼,并將主持終端A的視頻數(shù)據(jù)以及解碼后的各參會(huì)終端的視頻數(shù)據(jù)合成一路視頻數(shù)據(jù);然后由主持終端A將視頻數(shù)據(jù)分別分發(fā)給與參會(huì)終端B、C、D進(jìn)行通訊的三個(gè)編解碼通道,三個(gè)編解碼通道在對(duì)視頻數(shù)據(jù)進(jìn)行編碼后,再發(fā)送給各自的終端進(jìn)行顯示。由于現(xiàn)有做法的主持終端A既要完成參會(huì)終端B、C、D三路視頻數(shù)據(jù)的解碼工作,還要對(duì)四路合成的視頻數(shù)據(jù)進(jìn)行3次編碼工作,再分發(fā)給參會(huì)終端B、C、D顯示,因此,現(xiàn)有做法大大增加了多媒體終端CPU的負(fù)荷。
其實(shí)這里主持終端A對(duì)要發(fā)送給各參會(huì)終端的四路合成的視頻數(shù)據(jù)是一樣的,只需要進(jìn)行1次編碼工作,即與現(xiàn)有做法相比減少了2次編碼工作,大大降低CPU的負(fù)荷,確保視頻顯示的清晰順暢。
(二)如何減少主持方網(wǎng)絡(luò)帶寬資源
在顯示視頻時(shí),無(wú)論是主持終端還是參會(huì)終端均會(huì)顯示本地圖像和遠(yuǎn)程圖像,作為主持方直接在田字格里面顯示四方圖像,而且能夠?qū)@四方圖像進(jìn)行選中后發(fā)送,即可以選中其中一路圖像發(fā)送或者全部發(fā)送,而參會(huì)方的遠(yuǎn)程圖像則是主持方發(fā)送來(lái)的圖像,可能是某一路視頻也可能是合并后的四路視頻。即主持方可以自由切換視頻布局發(fā)送給各參會(huì)方,目前做法就是無(wú)論主持方發(fā)送全部視頻還是其中一路視頻,參會(huì)方加入會(huì)議后都會(huì)不停發(fā)送其視頻數(shù)據(jù)到主持方,無(wú)形之中占用了大量的網(wǎng)絡(luò)資源,其實(shí)當(dāng)主持方把多路顯示切換到單路時(shí)其實(shí)只需要這一路參會(huì)方的視頻數(shù)據(jù)發(fā)送即可。
因此,這里提出一種能夠根據(jù)不同的布局動(dòng)態(tài)調(diào)整參會(huì)方的數(shù)據(jù)發(fā)送的方法,在視頻會(huì)議過(guò)程中,當(dāng)主持方發(fā)起對(duì)視頻布局調(diào)整時(shí),全部顯示情況下還是已有處理方式,當(dāng)切到某一路視頻顯示時(shí),只需要這一路視頻數(shù)據(jù)發(fā)送處理即可,停止其它不需要的參會(huì)方數(shù)據(jù)傳送,而且也省去了合并視頻數(shù)據(jù)等環(huán)節(jié),不僅降低了CPU負(fù)荷,還大大降低網(wǎng)絡(luò)資源耗用,減少網(wǎng)絡(luò)帶寬占用。
本課題通過(guò)對(duì)目前的Android系統(tǒng)、SIP協(xié)議技術(shù)、WebRTC技術(shù)的分析,基于SVP3300這款多媒體終端,結(jié)合三者可以實(shí)現(xiàn)多媒體終端上四方視頻會(huì)議系統(tǒng),并且結(jié)合現(xiàn)有技術(shù)提出了能夠有效降低多媒體終端CPU負(fù)荷和節(jié)約網(wǎng)絡(luò)寬帶資源的辦法,讓在普通多媒體終端上實(shí)現(xiàn)四方視頻會(huì)議更加清晰流暢,滿足了小型多方視頻會(huì)議溝通需求,不僅僅局限于會(huì)議室內(nèi),使攜帶有多媒體終端的人員可以隨時(shí)隨地開啟視頻會(huì)議,提高了視頻會(huì)議的靈活性、方便性和快速性。
[1]盧卓飛.視頻會(huì)議系統(tǒng)的研究[J].信息與電腦,2017,(第3期).
[2]李立華.視頻會(huì)議系統(tǒng)的行業(yè)現(xiàn)狀和發(fā)展趨勢(shì)分析[J].通訊世界,2017,(第10期).
[3]杜鑫.SIP協(xié)議介紹及應(yīng)用前景分析[J].信息通信,2017,(第2期).
[4]邵德偉.采用WebRtc技術(shù)搭建視頻會(huì)議系統(tǒng)[J].機(jī)電工程技術(shù),2016,(第C2期).
余秀容(1982-),女,漢族,福建福州人,碩士在讀,研究方向通信系統(tǒng)。