胡 敏,劉六程,劉 鵬
(重慶郵電大學(xué)軟件技術(shù)中心,重慶 400065)
隨著人類經(jīng)濟(jì)、政治及文化活動的不斷發(fā)展,人與人之間的信息交流愈來愈頻繁,人們渴望得到直觀、真實的交流效果。視頻會議系統(tǒng)可以讓人們遠(yuǎn)距離進(jìn)行實時信息交流,開展協(xié)同工作,提供直觀、真實的音視頻等多種交流方式。此外利用多媒體技術(shù)的支持,視頻會議系統(tǒng)可以幫助用戶對各種信息進(jìn)行處理、加工、反饋,有利于問題的解決[1-2]。視頻會議能提高人們的工作效率,降低遠(yuǎn)距離會議的費用。
簡單靈活的SIP協(xié)議不僅可以實現(xiàn)H.323協(xié)議的相關(guān)功能,而且擴(kuò)展性強(qiáng),可以由純軟件來實現(xiàn)會議功能,在普通的因特網(wǎng)(網(wǎng)絡(luò)環(huán)境不穩(wěn)定,帶寬有限)上就可以實現(xiàn)視頻會議的應(yīng)用。Google于2011年將WebRTC實時音視頻技術(shù)開源,為更多研究和開發(fā)視頻會議系統(tǒng)的人員降低了成本,節(jié)約了開發(fā)時間。
計算機(jī)與通信技術(shù)的高速發(fā)展,以及網(wǎng)絡(luò)寬帶的不斷改善,視頻會議將向著更廉價、更優(yōu)質(zhì)、更便捷的方向發(fā)展,以滿足廣大用戶的需求,硬件視頻會議系統(tǒng)將逐步被軟件視頻會議系統(tǒng)所取代。因此,研究WebRTC和SIP協(xié)議等技術(shù),對研究和開發(fā)基于IP網(wǎng)絡(luò)的純軟件視頻會議系統(tǒng)具有重要的價值和意義。
在2010年,Google以大約6 820萬美元收購了VoIP軟件開發(fā)商Global IP Solutions公司,并因此獲得了該公司擁有的WebRTC(Web Real Time Communication)技術(shù),并在2011年6月對WebRTC實時通信項目進(jìn)行了開源。
WebRTC是基于Web瀏覽器的實時音頻和視頻的通信技術(shù)。其結(jié)構(gòu)如圖1所示。該技術(shù)主要包括3部分:音頻模塊(Voice Engine)、視頻模塊(Video Engine)和傳輸模塊(Transport)。
1)WebRTC的音頻模塊
圖1 WebRTC結(jié)構(gòu)
音頻部分包含采集、編解碼(iLBC/iSAC)、加密、聲音處理、聲音輸出、音量控制、音視頻同步、網(wǎng)絡(luò)傳輸與媒體流控制(RTP/RTCP)等技術(shù)。iLBC編解碼器是窄帶編解碼器,采用8 kHz的采樣頻率,支持比特率為15.20 kbit/s和13.33 kbit/s的音頻流;iSAC編解碼器是寬帶編碼器,采用16 kHz或32 kHz的采樣頻率,支持12~52 kbit/s自適應(yīng)和可變的音頻流范圍。NetEQ技術(shù)是動態(tài)的抖動緩存區(qū)和錯誤隱藏算法,降低網(wǎng)絡(luò)抖動和包丟失對音頻效果的影響,盡可能保持一個低延遲率語音效果。降噪和回音處理技術(shù)(AEC)[3],能夠提供高質(zhì)量的語音效果。
2)WebRTC的視頻模塊
視頻部分包含采集、編解碼(VP8)、加密、媒體文件、圖像處理與顯示、網(wǎng)絡(luò)傳輸與媒體流控制等技術(shù)。VP8視頻編解碼技術(shù),可以滿足實時視頻通信的低延遲特性要求。視頻抖動緩存器(Video Jitter Buffer)和圖像增強(qiáng)技術(shù),減小網(wǎng)絡(luò)抖動和包丟失對視頻效果的影響,降低視頻噪聲,增強(qiáng)視頻質(zhì)量。
2.背向示范法。即體育老師示范時背向?qū)W生,和學(xué)生同方向站立,讓學(xué)生跟隨自己進(jìn)行同步練習(xí),由于是背向,不利于學(xué)生觀察到老師的體前細(xì)節(jié)動作,因此背向示范法常用于左右方向動作的演示,如武術(shù)的套路教學(xué)等。
3)傳輸模塊
實時音視頻的傳輸與控制,采用 RTP[4]與 RTCP[5-6]技術(shù),穩(wěn)定、可靠。此外WebRTC還包含了STUN,ICE,TURN,RTP-over-TCP的關(guān)鍵NAT和防火墻穿越技術(shù)。WebRTC支持SIP,XMPP/Jingle等信令協(xié)議,還支持跨平臺:Windows,Linux,Mac,Android 等。功能的各部分可擴(kuò)展,可根據(jù)實際環(huán)境進(jìn)行改進(jìn)。
WebRTC實時音視頻通信技術(shù)能夠滿足帶寬有限的普通網(wǎng)絡(luò)環(huán)境下用戶進(jìn)行實時音視頻交流的需求,對研究視頻會議的音視頻處理等方面具有重要意義。
IETF工作組于1999年9月推出了基于IP網(wǎng)絡(luò)的會話信令協(xié)議SIP(Session Initiation Protocol)的第一個版本RFC2543[7];2000年前后,3GPP 把 SIP 作為第三代移動通信系統(tǒng)多媒體的控制協(xié)議;2002年IETF公布了SIP的第二版 RFC3261[8];2006 年 2 月推出 RFC4353[9],隨后 IETF發(fā)布了多個關(guān)于SIP的RFC文檔。
SIP用于發(fā)起、修改和終止IP網(wǎng)絡(luò)上的多媒體會話,文獻(xiàn)[8]中介紹了SIP協(xié)議主要有6類消息,并對其進(jìn)行了說明,它們分別是 INVITE,BYE,OPTIONS,ACK,REGISTER和CANCEL消息。SIP具有以下5個特點:1)SIP消息基于文本,詞法和語法簡單、可讀性好;2)協(xié)議簡單、擴(kuò)展性好;3)定位用戶、支持用戶移動性;4)SIP網(wǎng)絡(luò)采用IP網(wǎng)絡(luò)常用的C/S(客戶端/服務(wù)器結(jié)構(gòu));5)會話建立的時延較短。文獻(xiàn)[9]中對H.323和SIP作了詳細(xì)的分析和比較。
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,傳統(tǒng)固網(wǎng)、移動網(wǎng)、寬帶互聯(lián)網(wǎng)以及有線電視網(wǎng)等網(wǎng)絡(luò)的融合,同時終端朝著智能化的方向發(fā)展。在這樣的網(wǎng)絡(luò)環(huán)境中,SIP已經(jīng)被廣泛地使用和支持。
SIP會議系統(tǒng)可分為緊耦合和松散耦合兩種模型[10]。緊耦合會議中使用一個中心節(jié)點來實現(xiàn)對信令的集中控制,而松散耦合會議中沒有集中的SIP信令服務(wù)器。其中緊耦合模式包括集中混合模式、系統(tǒng)混合模式和信令集中、媒體流分布模式(如圖2,A,B,C,D,E 為終端,實線為SIP流,虛線為媒體流)。
圖2 信令集中、媒體流分布模式
在圖2中,會議的控制由一個SIP信令控制器來完成,并維護(hù)所有終端間的信令連接,完成對終端用戶的控制;媒體流則由各個與會終端分別進(jìn)行處理,媒體流的分發(fā)可以采用組播或單播的方式。考慮了媒體流分發(fā)過程中會占用大量帶寬資源以及實際網(wǎng)絡(luò)環(huán)境中部分節(jié)點或路由支持組播等因素。對于支持組播的網(wǎng)絡(luò),采用組播的方式,最大可能地節(jié)省帶寬,提高帶寬的利用率,便于會議規(guī)模的擴(kuò)大。該模型媒體流的傳輸過程中沒有混合編碼轉(zhuǎn)換,處理方便、延遲小。
RFC4353[11]描述了一個集中式SIP會議系統(tǒng)原始框架。其中定義了一些邏輯實體和應(yīng)用場景,介紹了如何使用SIP協(xié)議和SIP的擴(kuò)展來實現(xiàn)一個視頻會議系統(tǒng)。其基本功能包括會議控制和管理、音頻/視頻處理、通信服務(wù)(白板,文件共享)等功能模塊。文獻(xiàn)[12]對該框架做了分析和改進(jìn)。
本系統(tǒng)采用集中控制式,其視頻會議框架結(jié)構(gòu)如圖3所示。該模型主要包括Participant(與會者)、Focus(會議控制中心)、Mixer(媒體混合服務(wù)器)、CNS(Conference Notification Server,會議通知服務(wù)器)等功能模塊。其中,F(xiàn)ocus,CNS和Mixer構(gòu)成會議服務(wù)器,完成視頻會議的核心功能。文獻(xiàn)[13]中給出了該模型中部分模塊的功能的介紹。
圖3 視頻會議系統(tǒng)框架
Focus主要控制會議的建立或退出、與會者加入或退出等。Focus的功能是在開源軟件Asterisk的基礎(chǔ)上設(shè)計和修改的。Asterisk具有一個SIP協(xié)議棧和RTP協(xié)議棧,實現(xiàn)了一個具有基本功能的語音會議系統(tǒng)Meetme,其結(jié)構(gòu)如圖4所示。修改后,如圖5采用TCP傳輸SIP,增強(qiáng)會議控制的可靠性,增加RTCP協(xié)議實現(xiàn)對媒體流的實時控制,及時反饋帶寬資源的使用情況,當(dāng)出現(xiàn)擁塞時,視頻發(fā)送端根據(jù)反饋參數(shù)調(diào)節(jié)視頻的幀數(shù),保證會議的連續(xù)性和穩(wěn)定性。
與會者通過客戶端完成注冊后,可以使用音視頻交流、白板、文件傳輸與共享等通信服務(wù)功能。對于音頻和視頻的采集、編解碼、圖像和聲音同步、顯示、傳輸?shù)确謩e采用 WebRTC 中的 Voice Engine,Video Engine,Transport技術(shù)來完成,其結(jié)構(gòu)如圖6所示。
圖6 客戶端結(jié)構(gòu)
針對音頻的混合和分發(fā),采用開源軟件Zaptel來實現(xiàn)。Zaptel為音頻混合提供了許多方便的接口,可以完成聲音的混合和分發(fā)等功能。針對視頻的混合和分發(fā),采用開源軟件FFmpeg來實現(xiàn),并對其進(jìn)行了改進(jìn),首先根據(jù)客戶端IP判斷客戶端是否在同一個網(wǎng)段內(nèi),如客戶端A(192.168.1.100),B(192.168.1.101),C(201.202.1.100)。A與B在同一網(wǎng)段內(nèi)則采用組播方式傳輸媒體流,這樣在一定程度上降低了服務(wù)器負(fù)載,提高了系統(tǒng)性能。
CNS主要通過定義通知機(jī)制來通知與會者相應(yīng)的會議事件和會議狀態(tài)[14]。與會者通過發(fā)送SUBSCRIBE請求向CNS預(yù)定相關(guān)的會議事件和狀態(tài)服務(wù)。在會議中,一旦預(yù)定的事件發(fā)生,CNS將通過NOTIFY方法向與會者通告預(yù)定的相關(guān)會議事件和當(dāng)前會議狀態(tài)。例如,與會者可以預(yù)定會議在席信息,當(dāng)有與會者加入或退出會議時,CNS將向預(yù)定會議的在席信息的與會者發(fā)送會議成員實時變更情況。
本文通過對目前的SIP視頻會議體系結(jié)構(gòu)的分析和研究,利用WebRTC技術(shù)來處理視頻會議的音頻和視頻,采用SIP作為視頻會議的核心控制信令。并對Asterisk,Zaptel,F(xiàn)Fmpeg等開源軟件進(jìn)行了研究和改進(jìn),設(shè)計并實現(xiàn)了一個普通網(wǎng)絡(luò)環(huán)境下的視頻會議系統(tǒng),該系統(tǒng)具有價格低廉、使用方便、帶寬利用率高等特點,為研究軟件視頻會議提供了一個參考。在下一步工作中,將對此系統(tǒng)進(jìn)行優(yōu)化,提高系統(tǒng)的安全性,兼容非SIP會話,豐富和完善會議的功能。
:
[1]仲元昌,林永,蔡增增,等.視頻會議系統(tǒng)關(guān)鍵技術(shù)及應(yīng)用研究[J].電視技術(shù),2010,34(6):93-96.
[2]楊高波,韓龍.視頻會議系統(tǒng)綜述[J].電視技術(shù),2004,28(9):60-63.
[3]潘曉東.聲學(xué)回聲消除技術(shù)(AEC)在會議擴(kuò)聲系統(tǒng)的應(yīng)用[J].電聲技術(shù),2012,36(2):2-14.
[4]IETF.RFC3550,RTP:a transport protocol for real-time applications[S].2003.
[5]IETF.RFC3611,RTP control protocol extended reports(RTCP XR)[S].2010.
[6]RFC3605,Real time control protocol(RTCP)attribute in session description protocol(SDP)[S].2010.
[7]RFC2543,SIP:Session initiation protocol[S].1999.
[8]RFC3261,SIP:Session initiation protocol[S].2002.
[9]張智江,張云勇,劉韻潔.SIP協(xié)議及其應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[10]侯移門.TAIDEN無紙化多媒體會議系統(tǒng)[J].電聲技術(shù),2011,35(10):8-11.
[11]RFC4353,A framework for conference with the session initiation protocol(SIP)[S].2006.
[12]王森.SIP多方視頻會議應(yīng)用服務(wù)器設(shè)計與實現(xiàn)[D].沈陽:沈陽計算技術(shù)研究所,2008.
[13]蘇云濤.基于SIP的視頻會議系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2008.
[14]RFC 3265,Session initiation protocol(SIP)-specific event notification[S].2002.