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