基于webrtc的應(yīng)用及平臺(tái)技術(shù)開發(fā)與設(shè)計(jì)_第1頁
基于webrtc的應(yīng)用及平臺(tái)技術(shù)開發(fā)與設(shè)計(jì)_第2頁
基于webrtc的應(yīng)用及平臺(tái)技術(shù)開發(fā)與設(shè)計(jì)_第3頁
基于webrtc的應(yīng)用及平臺(tái)技術(shù)開發(fā)與設(shè)計(jì)_第4頁
基于webrtc的應(yīng)用及平臺(tái)技術(shù)開發(fā)與設(shè)計(jì)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

鴻1, 松1, 鑫2, 斌(1.法國電信研發(fā)中心100190;2.中國電 100035)摘要:WebRTC具有開放標(biāo)準(zhǔn)、簡單易擴(kuò)展、開源免費(fèi)等特點(diǎn)。除了通過調(diào)用WebRTC提供的標(biāo)準(zhǔn)WebAPI方便快速開發(fā)Web應(yīng)用外,還可以利用WebRTC的實(shí)現(xiàn)庫開發(fā)高質(zhì)量的實(shí)時(shí)音通信移動(dòng)客戶端應(yīng)用??偨Y(jié)了WebRTC的主要技術(shù)特點(diǎn),對(duì)設(shè)計(jì)和開發(fā)基于WebRTC技術(shù)的移動(dòng)客戶端應(yīng)用和Web應(yīng)用進(jìn)行技術(shù)分析,給出基于WebRTC技術(shù)的移動(dòng)客戶端應(yīng)用、Web應(yīng)用和服務(wù)平臺(tái)的參考設(shè)計(jì)。:Web實(shí)時(shí)通信;移動(dòng)客戶端;Web應(yīng)用;JavaScript會(huì)話建立協(xié)議;STUN;TURN:10.3969/j.issn.1000ResearchandDesignofandWebApplicationBasedonWebRTCTechnologyLinHong1,WangSong1,YangXin2,Fu(1. R&DBeijingCentre,Beijing100190,2.BeijingResearchInstituteofCo.,.,Beijing100035,:WebRTCtechnologyhassomegoodcharacteristicsofopenandstandardized,simpleandextendable,opensourcedand.TheWebapplicationscanbeeasilyandquicklydevelopedbycallingtheWebAPIwhichareprovidedbyWebRTCtechnologyandbeingstandardized.Besides,thesandapplicationsofrealtimeaudiovisualcommunicationswithhighqualitycanalsobedevelopedbyfullyexploitingtheWebRTCcoreimplementationlibrary.ThemaintechnicalfeaturesofWebRTCtechnologyweresummarized.Basedonthesummary,thetechnicalysiswasgivenabouthowtodesignanddevelopthe applicationandWebapplicationbasedonWebRTCtechnology.Thereferencedesignandtheimplementationofthesapplications,theWebapplicationandtheservicetformwhichsupportsthesetwokindsoftheapplicationswereprovided.:WebRTC,,Webapplication,JavaScriptsessionestablishmentprotocol,STUN,引WebRTC[1](Webreal-timecommunication,Web實(shí)時(shí)通信)是一項(xiàng)在瀏覽器內(nèi)部進(jìn)行實(shí)時(shí)和音頻數(shù)據(jù)通信的技術(shù),是HTML5[2]標(biāo)準(zhǔn)之一。Web2.0在過去的幾年里將可編程性和交互性嵌入瀏覽器,而不只是顯示靜態(tài)內(nèi)容和格

式。但是,Web技術(shù)還不能夠應(yīng)付實(shí)時(shí)雙向的語音和通信需要。使用如Adobe的flash瀏覽器插件有明顯的靈活性和性能等方面的限制WebRTC技術(shù)可以開發(fā)具有實(shí)時(shí)音通信的Web應(yīng)用,利用其實(shí)現(xiàn)還可以開發(fā)出具有實(shí)時(shí)音通信的移動(dòng)應(yīng)用。在這些基礎(chǔ)應(yīng)用上,結(jié)合其他的先進(jìn)技術(shù),可以開發(fā)出創(chuàng)新的Web和移動(dòng)應(yīng)用WebRTC主要技術(shù)特點(diǎn)如圖1所示[1],在WebRTC系統(tǒng)架構(gòu)中包括面向Web應(yīng)用開發(fā)者的WebAPI和庫。WebRTC庫包含語音引擎(voiceengine)、視頻引擎(engine)、傳輸層、會(huì)話管理(sessionmanagement)和C++API,它們都內(nèi)嵌在瀏覽器里Web應(yīng)用開發(fā)者可以調(diào)用標(biāo)準(zhǔn)的JavaScriptAPI開發(fā)基于WebRTC的應(yīng)用,主要包括:GetUserMediaAPI用于控制本地設(shè)備的接入,如設(shè)備上的頭和麥克風(fēng),也叫MediaStreamAPI;PeerConnectionAPI用于管理在兩個(gè)瀏覽器之間雙向媒體流的發(fā)送和接收,通過JSEP(JavaScriptsessionestablishmentprotocol,JavaScript會(huì)話建立協(xié)議)[3]實(shí)現(xiàn)媒體參數(shù)的協(xié)商,這是WebRTC最典型的P2P應(yīng)用場景;DhannelsAPI用于瀏覽器之間發(fā)送和接體的數(shù)據(jù)流。在WebRTC庫中,語音引擎實(shí)現(xiàn)了從聲卡到網(wǎng)絡(luò)整個(gè)音頻鏈的技術(shù)框架,包括對(duì)語音的聲學(xué)處理以及iAC、iLBC和Opus音頻編解碼的實(shí)現(xiàn)。引擎實(shí)現(xiàn)從頭到網(wǎng)絡(luò)、從網(wǎng)絡(luò)到屏幕整個(gè) 鏈的技術(shù)框架,還包括圖像的處理和VP8編的實(shí)現(xiàn)。會(huì)話控制是為支持呼叫建立和管理的抽象會(huì)話層,應(yīng)用開發(fā)者決定如何實(shí)現(xiàn)具體協(xié)議。C++AI是瀏覽器廠商實(shí)現(xiàn)

WebAPI所需的函數(shù)集在傳輸層中,WebRTC利用ICE[4]/STUN[5]/TURN[6]機(jī)制來建立不同類型網(wǎng)絡(luò)間的呼叫連接,解決NAT穿越問題。WebRTC通過RTP傳輸音頻和 流,通過SCTP實(shí)現(xiàn)傳輸可靠數(shù)據(jù)流。90%左右NAT類型均可以利用STUN獲得對(duì)方的公網(wǎng)IP地址和端口,實(shí)現(xiàn)穿越,不需要媒體服務(wù)器進(jìn)行中繼。只有10%左右NAT為對(duì)稱性NAT,可以采用在互聯(lián)網(wǎng)上部署TURN中繼服務(wù)器的方式實(shí)現(xiàn)NAT穿越??梢姡琖ebRTC技術(shù)不同于傳統(tǒng)的SIP/IMS網(wǎng)絡(luò)部署,在不考慮等因素的情況下,大大降低了服務(wù)器的負(fù)載和部署成本。WebRTC技術(shù)主要優(yōu)點(diǎn)如下。開放的標(biāo)準(zhǔn)WebRTC是HTML5標(biāo)準(zhǔn)之一,也是由W3C和IETF標(biāo)準(zhǔn)組織共同定義的一個(gè)開放的標(biāo)準(zhǔn)。W3C的WebRTC工作組[7WebWebAPI[8]用于開發(fā)具有語音、和數(shù)據(jù)功能Web應(yīng)用。IETFRTCWeb工作組[9]定義了瀏覽器之間流交互的協(xié)議和規(guī)范,但沒有定義呼叫控制協(xié)議。3GPP也正在制定WebRTCIMS之間互聯(lián)需求(TR23.701[10])的標(biāo)準(zhǔn)。簡單和易擴(kuò)展性WebRTC提供了一個(gè)簡單可擴(kuò)展的技術(shù)框架和方案選型,方便開發(fā)者通過互聯(lián)網(wǎng)提供語音、和數(shù)據(jù)等多種應(yīng)用和服務(wù)。WebRTC本身并不定義同用戶之間的交互方式、媒體流的路由方式、用戶認(rèn)證、呼叫協(xié)議和控制以及同其他網(wǎng)絡(luò)的互聯(lián)方式等。這些課題由開發(fā)者和服務(wù)提供商根據(jù)不同的業(yè)務(wù)場景和技術(shù)需要進(jìn)行靈活選擇和配置。來自的廣泛支WebRTC技術(shù)獲得來自的支持。除了瀏覽器廠商,如、Mozilla和Opera外,其他大公司在WebRTC上也表現(xiàn)積極,如運(yùn)營商AT&T、efonica,設(shè)備商AlcaLucent、Ericsson、Cisco、Avaya、AcmePacket等以及來自從企業(yè)通信到游戲等領(lǐng)域的眾多開發(fā)者和初創(chuàng)公司。許多圍繞WebRTC技術(shù)的工作在、歐洲和亞洲,特別是在中國和韓國,都在積極進(jìn)行之中。同運(yùn)營商網(wǎng)絡(luò)的互聯(lián)互通WebRTC的一些應(yīng)用場景可以作為運(yùn)營商既有和網(wǎng)絡(luò)的有效補(bǔ)充,比如通過WebRTC提供IMS服務(wù)、會(huì)議和呼叫中心的升級(jí)、企業(yè)統(tǒng)一通信業(yè)務(wù)的改進(jìn)等以及一些垂直業(yè)務(wù)的擴(kuò)充,如M2M、教育和醫(yī)療等。和其他技術(shù)的結(jié)合WebRTC技術(shù)容易和其他的先進(jìn)技術(shù),如虛擬現(xiàn)實(shí)、手勢控制、人臉識(shí)別等技術(shù)結(jié)合,實(shí)現(xiàn)Web應(yīng)用的快速mash-up開發(fā)。基于WebRTC技術(shù)的移動(dòng)客戶端和Web應(yīng)用的技術(shù)基于WebRTCWebAPI能夠比較容易開發(fā)支持實(shí)時(shí)語音通信及數(shù)據(jù)可靠通信的Web應(yīng)用以及基于這種基本能力的其他Web應(yīng)用。但是這種Web應(yīng)用還存在一些實(shí)際問題。比如,如何在瀏覽器中通知用戶來電問題,一般情況下,瀏覽器處理呼入總是比出站連接更難。這種情況在上更復(fù)雜,來電通知可能需要常規(guī)的鈴聲,而不是簡單的提示;如果用戶已經(jīng)處于一個(gè)CS或者VoIP通話,如何提示和區(qū)別這個(gè)WebRTC的來電是需要探討的問題。另外,用戶如果在呼叫中刷新了網(wǎng)這時(shí)JavaScript執(zhí)行的上下文發(fā)生重置,會(huì)話中間狀態(tài)會(huì)丟失。這些是Web應(yīng)用實(shí)現(xiàn)實(shí)時(shí)通信需要解決的問題。除了利用WebAPI開發(fā)Web應(yīng)用外,利用WebRTC核心庫也可以開發(fā)出具有實(shí)時(shí)通信功能的移動(dòng)客戶端。WebRTC庫具有如下特點(diǎn)。支持多種開源音編音頻編中支持iSAC、iLBC、Opus等免費(fèi)音頻編

碼和VP8視頻編解碼。iSAC是一種用于VoIP和流音頻的寬帶和超寬帶音頻編器。iLBC是用于VoIP和流音頻的窄帶語音編器。其標(biāo)準(zhǔn)由IETFRFC3951[11]和RFC3952[12]定義。Opus支持持續(xù)和可變碼流編。其標(biāo)準(zhǔn)由IETFRFC6716[13]定義。VP8基于WebM項(xiàng)目[],非常適合低時(shí)延的通信。具有強(qiáng)大的音引WebRTC語音引擎支持自適應(yīng)抖動(dòng)控制算法和語音分組丟失隱藏算法,用于緩解網(wǎng)絡(luò)抖動(dòng)和分組丟失引起的影響,使其能夠快速且高解析度地適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,確保音質(zhì)優(yōu)美且緩沖時(shí)延最小,提高語音通話質(zhì)量;支持基于軟件的信號(hào)處理來消除回聲,實(shí)時(shí)地去除手麥克風(fēng)到的回聲;支持基于軟件的信號(hào)處理來抑制噪背景噪聲。動(dòng)態(tài)抖動(dòng)緩存和錯(cuò)誤隱藏算法,用于緩解網(wǎng)絡(luò)抖動(dòng)和分組丟失引起的負(fù)面影響。引擎支持動(dòng)態(tài)抖動(dòng)控制,緩解抖動(dòng)和分組丟失引起的影響,有助于提升整個(gè)視頭抓取圖像的噪聲。支持多移動(dòng)平臺(tái)WebRTC平Android、iOS、WindowsPhone等技術(shù)獲業(yè)界認(rèn)可WebRTC語音引擎如GlobalIPSolutions公司[15]。許多大公司的產(chǎn)品,如Skype、QQ、WebEX、AOL等都曾采用該公司的IP語音引擎和相關(guān)產(chǎn)所以,通過增加用戶管理、會(huì)話協(xié)議控制和用戶交互界面等工作,結(jié)合這個(gè)WebRTC庫就可以開發(fā)跨平臺(tái)的實(shí)時(shí)音通信的移動(dòng)互聯(lián)網(wǎng)應(yīng)用。美國上市公司Vonage,WebRTCAndroid和iOS移動(dòng)平臺(tái)的客戶端應(yīng)用,減少對(duì)私有和付費(fèi)技術(shù)方案的依賴?;赪ebRTC技術(shù)的移動(dòng)客戶端和Web應(yīng)用的參考設(shè)計(jì)使用統(tǒng)一的支持移動(dòng)客戶端和Web應(yīng)用。提供一組標(biāo)準(zhǔn)的客戶端API,方便移動(dòng)客戶端和Web應(yīng)用調(diào)用,實(shí)現(xiàn)和前端應(yīng)用的松耦合。目前大部分基于WebRTC的服務(wù)都部署在GAE(Appengine)上,用戶之間P2P通道的建立以及呼叫信令的傳輸,都是通過GAE完成。但是GAE環(huán)境國內(nèi)不能。筆者基于開源軟件項(xiàng)目部署自己的應(yīng)用服務(wù)器,實(shí)現(xiàn)了基于WebRTC的服務(wù)。WebRTC沒有定義用戶呼叫管控制協(xié)議SIP、XMPP[16]、其他標(biāo)準(zhǔn)協(xié)議或者完全私有協(xié)議都可以用于呼叫控制協(xié)議SIP是最常用的VoIP,廣泛用于企業(yè)的IPPBX和運(yùn)營IMS平臺(tái)XMPP/Jingle[17]用于呼叫控制,主要基于以下幾點(diǎn)考慮:XMPP本身SIP更簡單客戶端協(xié)議棧實(shí)現(xiàn)和JavaScript實(shí)現(xiàn)更輕量;XMPP后臺(tái)處理不需要安裝類似SBC網(wǎng)關(guān)做NAT穿越;沒有同IMS網(wǎng)絡(luò)互通的需求等。下面分別詳細(xì)描述基于WebRTC技術(shù)的移動(dòng)客戶端Web應(yīng)用和支持它們的的設(shè)計(jì)及具體實(shí)現(xiàn)移動(dòng)客戶端設(shè)計(jì)與實(shí)現(xiàn)基于WebRTC開發(fā)實(shí)現(xiàn)了移動(dòng)客戶端微呼,這是一款支持好友之間進(jìn)行免費(fèi)語音、文字通信的創(chuàng)新應(yīng)用。通過調(diào)用提供的客戶端API和服務(wù)平臺(tái)交互,包括用戶注冊、登錄、訂閱用戶狀態(tài)、獲取用戶狀態(tài)等。通過XMPP實(shí)現(xiàn)用戶之間語音通信時(shí)的呼叫建立、信令協(xié)商、會(huì)話管理和SDP[18]協(xié)商;通過XMPP實(shí)現(xiàn)用戶之間的文字消息的傳遞;通過RTP傳送語音媒體流,RTCP媒體流傳送質(zhì)量;通過STUN和TURN協(xié)議來建立不同類型網(wǎng)絡(luò)間的媒體鏈接,實(shí)現(xiàn)P2P的流傳輸,減少中間媒體服務(wù)器的要求。WebRTC移動(dòng)客戶端基AndroidSDK進(jìn)行開發(fā)集成了libjingle和WebRTC兩個(gè)開源項(xiàng)目,其中l(wèi)ibjingle庫提供XMPP的處理和解析等功能,WebRTC庫提供了語音編碼和聲學(xué)處理等功能同時(shí)客戶端也集成了友盟SDK的統(tǒng)計(jì)功能和SDK的相關(guān)功能。軟件架構(gòu)如圖2所

圖 WebRTC移動(dòng)客戶端的軟件架 com.orange.weihu.service:服務(wù)模塊 com.orange.weihu.util:通用輔助模塊WebRTC移動(dòng)客戶端模塊間相互依賴關(guān)系如圖3所示。其中,activity包封裝了用戶交互相關(guān)的邏輯,包括認(rèn)證登錄管理和瀏覽展現(xiàn),用戶好友關(guān)系和WebRTC好友關(guān)系的、文本消息的收發(fā)和記錄管理、通話的發(fā)起和接收以及的管理。service包封裝底層通話相關(guān)庫的邏輯,包括共享庫的加載及生命周期管理、開機(jī)啟動(dòng)和信息獲取等功能。data包封裝了需要持久化的核心邏輯,包括相關(guān)信息、好友關(guān)系相關(guān)信息、文本消息相關(guān)信息和相關(guān)信息。其中邏輯分層結(jié)構(gòu)如下packagecom.orange.weihu.activity用戶交互相關(guān)的邏輯模塊。 mon:通用數(shù)據(jù)輔助模塊packageco ponent:自定義相關(guān)視圖組件模塊。 com.orange.weihu.data:數(shù)據(jù)模塊packagecom.orange.weihu.jni:JNI(Javanative調(diào)用接口層 :網(wǎng)絡(luò)處理模塊WebRTC客戶端中各個(gè)模塊調(diào)用的基本流程如圖4所示。用戶點(diǎn)擊呼叫按鈕,activity向service傳遞消息,service通過JNI調(diào)用libjingle,libjingle設(shè)置完成WebRTC相關(guān)功能,發(fā)起呼叫。用戶通過賬戶登錄,獲得好友信息及微博詳情,如果沒有在微呼服務(wù)器注冊過,則進(jìn)行微呼賬戶建立。啟動(dòng)相關(guān)服務(wù),加載底層類庫,建立呼叫相關(guān)網(wǎng)絡(luò)連接,在線狀態(tài)。選擇在線好友, 服務(wù)器,獲得好友連接信息,建立通話連接。4WebRTC移動(dòng)客戶端的模塊調(diào)用基本流程Web應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)WebRTC的實(shí)時(shí)語音視頻通信Web應(yīng)用在無需任何插件的情況下,實(shí)現(xiàn)了瀏覽器之間P2P的音頻和通信,提供了Web用戶注冊、登錄、獲取好友在線狀態(tài)以及與好友進(jìn)行實(shí)時(shí)語音和通話等功能。Web應(yīng)用部署在應(yīng)用服務(wù)器Openfire19上,通的方式連接并訪問Openfire服務(wù)器。Openfire服務(wù)器提供了HTTP綁定的功能,通過7070端口,接WebHTTP請(qǐng)求,Web

應(yīng)用基于開源JavaScript庫Strophe,是基于JavaScript的可擴(kuò)展通信和表示協(xié)議(XMPP)客戶端庫主要功能包括用戶登錄和登出、并發(fā)送IM消息、服務(wù)器推送的presence更新信息、服務(wù)器轉(zhuǎn)發(fā)的IQ信息。Jingle協(xié)議是XMPP的擴(kuò)展,用于規(guī)范兩個(gè)XMPP客戶端之間的信令協(xié)議。SDP信令流程和Jingle信令流程的不同之處在于P2P通道地址和端口的發(fā)送時(shí)間,Jingle信令在發(fā)起呼叫時(shí),便會(huì)協(xié)商P2P通道地址和端口;而SDP信令將編解碼協(xié)商和P2P通道地址協(xié)商分為兩個(gè)信令發(fā)送,在發(fā)送發(fā)起呼叫信令后,便馬上發(fā)送P2P通道地址和端口。WebRTC中的信令是基于SDP格式的,而Openfire應(yīng)用服務(wù)器是基于XMPP的,信令格式基于Jingle協(xié)議,所以需要對(duì)信令格式進(jìn)行轉(zhuǎn)換,包括SDP信令和Jingle信令的互換,需要JSEP中的SDP格式映射Jingle格式[20]。設(shè)計(jì)與實(shí)現(xiàn)基于XMPP,并以XML數(shù)據(jù)元流式來傳輸數(shù)據(jù),為移動(dòng)客戶端和PC客戶端提供基于WebIM傳輸、VoIP呼叫、信令傳輸、用戶管理和用戶關(guān)系維護(hù)、好友狀態(tài)presence信息推送以及日志統(tǒng)計(jì)等功能。的邏輯架構(gòu)如圖5XMPP服務(wù)器、STUN服務(wù)器和TURN服務(wù)器。其中XMPP服務(wù)器用于即時(shí)消息轉(zhuǎn)發(fā)和實(shí)時(shí)通信信令傳輸,STUN服務(wù)器用于NAT穿越,TURN服務(wù)器用于流的轉(zhuǎn)發(fā)。Openfire是基于XMPP、跨平臺(tái)的即時(shí)消息服務(wù)器,支持服務(wù)器到服務(wù)器的連接,用于部署多個(gè)Openfire服務(wù)器圖5的邏輯架進(jìn)行擴(kuò)展;支持部署多個(gè)連接管理器,用于整合到Openfire的客戶端連接,提高Openfire的在線用戶數(shù)提供了一系列的可用插件,并支持插件擴(kuò)展,即開發(fā)者可通過部署新的plugin,進(jìn)行功能的擴(kuò)展。Openfire還作為VoIP通信信令服務(wù)器,提供端到端的Jingle信令的協(xié)商和傳輸。服務(wù)本平臺(tái)以plugin的方式,對(duì)Openfire進(jìn)行了功能擴(kuò)展,包括用戶管理和、獲取用戶狀態(tài)和通信日志統(tǒng)計(jì)等。采用不同的協(xié)議與客戶端進(jìn)行交互:IM傳輸采用XMPP信令傳輸基于Jingle協(xié)議對(duì)所提供API的采用HTTP?;赟TUNTURN的方式進(jìn)行NAT穿越。STUN服務(wù)器檢測主機(jī)的NAT類型,并根據(jù)NAT類型,在客戶端進(jìn)行打洞,以支持兩個(gè)客戶端之間的P2P通信。TURN服務(wù)器用于解決對(duì)稱型NAT的穿越問題。TURN服務(wù)器相當(dāng)于中繼服務(wù)器,客戶端獲取TURN的公網(wǎng)IP地址,客戶端之間的通信均通過TURN服務(wù)器進(jìn)行中轉(zhuǎn),這對(duì)TURN服務(wù)器的性能提出了很高的要求。但基于TURN服務(wù)器是對(duì)STUN服務(wù)器的有效補(bǔ)充,可以滿足性能要求。Web應(yīng)用以HTTP綁定的方式登錄并Openfire服務(wù)器,但Web客戶端和Openfire服務(wù)器處于不同域,涉及瀏覽器JavaScript跨域問題。這就需要Web客戶端調(diào)用JavaScript80端口,并且是同一子域。使用Apache做反HTTP-bindXMPPHTTP-binding端口。基于安全性的考慮,服務(wù)平臺(tái)將Openfire服務(wù)器部署在內(nèi)網(wǎng),并同時(shí)配置內(nèi)網(wǎng)IP地址和IP地址,使內(nèi)網(wǎng)用戶和外網(wǎng)用戶均可訪問。STUN服務(wù)器必須部署在公網(wǎng),并且內(nèi)置兩個(gè)網(wǎng)卡,向外部提供兩個(gè)公網(wǎng)IP地址和兩個(gè)端口,進(jìn)行NAT類型的檢測和打洞TURN服務(wù)器也部署在公網(wǎng),向外部提供一個(gè)公網(wǎng)IP地址和端口Apache反向服務(wù)器與Openfire服務(wù)器部署在同一臺(tái)機(jī)器上。結(jié)束本文總結(jié)WebRTC的主要優(yōu)點(diǎn)和技術(shù)特點(diǎn),對(duì)分別利用WebRTC技術(shù)提供的庫和WebAPI設(shè)計(jì)和開發(fā)具有實(shí)時(shí)音通信功能的移動(dòng)客戶端應(yīng)用和Web應(yīng)用進(jìn)行了技術(shù)可行性分析,并詳細(xì)描述了筆者基WebRTC技術(shù)開發(fā)移動(dòng)客戶端應(yīng)用、Web應(yīng)用和的參考設(shè)計(jì)在不同的移動(dòng)網(wǎng)絡(luò)環(huán)境(3G網(wǎng)絡(luò)和Wi-Fi網(wǎng)絡(luò))和

同的Android智能上對(duì)所開發(fā)的WebRTC移動(dòng)客戶端進(jìn)試,發(fā)現(xiàn)WebRTC核心庫對(duì)網(wǎng)絡(luò)時(shí)延、噪音抑制和回聲消除都有較好的處理,能在不同網(wǎng)絡(luò)環(huán)境中獲得較好的語音質(zhì)量。在固定寬帶和PC上測試WebRTC的Web應(yīng)用,除了較好質(zhì)量,VP8也能很好地處理視頻信息。當(dāng)然,還需要在更多環(huán)境和條件下對(duì)WebRTC技術(shù)進(jìn)行測試,對(duì)進(jìn)行系統(tǒng)客觀的分析,更好地評(píng)價(jià)WebRTC技術(shù)在音通信服務(wù)中的技術(shù)成熟度。WebRTC移動(dòng)客戶端和Web應(yīng)用還有很大的改進(jìn)空間。比如,客戶端可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)調(diào)整編解碼,在iSAC、iLBC和Opus編中自動(dòng)選擇適合當(dāng)前網(wǎng)絡(luò)環(huán)境的最優(yōu)編和技術(shù)參數(shù)。編VP8和H.264在不同網(wǎng)絡(luò)環(huán)境下的性能對(duì)比也值得進(jìn)一步的深入研究。WebRTC移動(dòng)客戶端目前只支持Android移動(dòng)平臺(tái),可以將WebRTC庫移植到其他移動(dòng)平臺(tái)上,客戶端可以支持的操作系統(tǒng)。也可以將WebRTC庫和移植部分封裝為SDK,供移動(dòng)應(yīng)用開發(fā)者開發(fā)各種具有實(shí)時(shí)通信能力的移動(dòng)客戶端。Web應(yīng)用同移動(dòng)客戶端之間的互聯(lián)也值得進(jìn)一步的研究。在WebRTC技術(shù)中,目前還沒有進(jìn)一步挖掘的能力和對(duì)數(shù)據(jù)流的支持,包括WebAPI中的數(shù)據(jù)信道的使用和WebRTC核心庫中對(duì)應(yīng)但還未出現(xiàn)的數(shù)據(jù)流引擎。參考文獻(xiàn)WebRTC.W3CHTML5.IETFRTCWebJSEP.JavaScriptsessionestablishmentIETFRFC5245 ctiveConnectivityIETFRFC5389STUN.SessionTraversalUtilitiesforIETFRFC5766TURN.TraversalUsingRelaysaroundW3CWebRTCWorkgroup.W3CWebRTCAPI.IETFRTCWebWorkgroup.3GPPTR23.701.StudyontheSupportofWebRTCIMSAccesstoIMS,2013IETFRFC3951iLBC.InternetLowBitRateIETFRFC3592RTPiLBC.RTPPayloadFormatforInternetLowBitRateCodecSpeech,2004IETFRFC6716Opus.DefinitionoftheOpusAudioWebMproject.(下轉(zhuǎn)第36頁聯(lián)網(wǎng)發(fā)展的政策、規(guī)定、規(guī)劃和標(biāo)準(zhǔn)等,在新的技術(shù)高對(duì)可能出現(xiàn)之問題案,確保IPv6技術(shù)與應(yīng)用的持續(xù)、快速、健康、有序發(fā)國下一代互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)安全、穩(wěn)健地步入IPv6時(shí)代。

[作者簡

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論