• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>

    WebRTC(頁(yè)實(shí)時(shí)通信)技術(shù)概述

    2014-06-23 10:13:45   作者:苗經(jīng)緯   來(lái)源:工業(yè)和信息化部電信研究院   評論:0  點(diǎn)擊:


      1. 前言

      WebRTC(Web Real-Time Communication——網(wǎng)頁(yè)實(shí)時(shí)通信)是一個(gè)基于瀏覽器的實(shí)時(shí)多媒體通信技術(shù)。該項技術(shù)旨在使Web瀏覽器具備實(shí)時(shí)通信能力;同時(shí),通過(guò)將這些能力封裝并以JavaScript API的方式開(kāi)放給Web應用開(kāi)發(fā)人員,使得Web應用開(kāi)發(fā)人員能夠通過(guò)HTML標簽和JavaScript API快速地開(kāi)發(fā)出基于Web瀏覽器的實(shí)時(shí)音視頻應用,而無(wú)需依賴(lài)任何第三方插件。該項技術(shù)將Web瀏覽器打造成一個(gè)適用于在所有用戶(hù)設備(比如移動(dòng)智能終端和個(gè)人電腦等)間進(jìn)行實(shí)時(shí)的音視頻和數據通信的通用平臺。

      在WebRTC技術(shù)出現之前,基于Web瀏覽器的多媒體通信服務(wù)是構建在特定的瀏覽器插件(如Adobe Flash Player)之上的,因為瀏覽器所依賴(lài)的HTTP協(xié)議是一種無(wú)連接狀態(tài)的協(xié)議——即瀏覽器與服務(wù)器建立連接,下載文件,斷開(kāi)連接,再顯示接收到的文件。因此,瀏覽器不能與服務(wù)器實(shí)時(shí)動(dòng)態(tài)地交換數據。無(wú)連接狀態(tài)的HTTP協(xié)議導致需要實(shí)時(shí)通信的服務(wù)(如聊天等)只能采取定時(shí)訪(fǎng)問(wèn)服務(wù)器的方法(即輪詢(xún)方式)來(lái)實(shí)現。然而,在用戶(hù)訪(fǎng)問(wèn)量增多時(shí),這種方式嚴重的消耗服務(wù)器端資源,進(jìn)而嚴重的影響服務(wù)器的性能。由于軟硬件平臺日趨多樣性,下列問(wèn)題將在基于瀏覽器插件的多媒體應用中突顯:1)加大IT公司對于插件和基于該插件的應用的研發(fā)和維護成本;2)加大插件開(kāi)發(fā)人員對于插件和基于該插件的應用的開(kāi)發(fā)、測試和維護工作;3)加大涉及到受版權保護的技術(shù)的整合難度;4)加大說(shuō)服用戶(hù)安裝插件的難度。

      目前,WebRTC由IETF(Internet Engineering Task Force——互聯(lián)網(wǎng)工程任務(wù)組)和W3C(World Wide Web Consortium——萬(wàn)維網(wǎng)聯(lián)盟)聯(lián)合負責其標準化工作。IETF定制WebRTC的互聯(lián)網(wǎng)基礎協(xié)議標準,該標準也被稱(chēng)為RTCWeb(Real-Time Communication in Web-browsers)。W3C則負責定制WebRTC的客戶(hù)端JavaScript API接口的標準。目前參與該技術(shù)標準定制的公司主要有思科、微軟、谷歌和愛(ài)立信等。其中,微軟為揭示現有WebRTC存在的不足,進(jìn)而推動(dòng)其不斷向前發(fā)展,提出了WebRTC的另一種形式,即CU-RTC-Web(Customizable, Ubiquitous Real Time Communication over the Web)。

      2. 系統構成

      WebRTC是通過(guò)將如下功能集成到現有瀏覽器來(lái)實(shí)現為異構系統提供統一的多媒體實(shí)時(shí)通訊平臺:會(huì )話(huà)管理、音頻引擎、視頻引擎和網(wǎng)絡(luò )傳輸。同時(shí),WebRTC為Web開(kāi)發(fā)人員提供了Web API (即JavaScript API)來(lái)開(kāi)發(fā)基于Web的音視頻應用;為瀏覽器廠(chǎng)商提供了WebRTC Native C++ API用于實(shí)現Web API的函數集(如圖1所示)。在本章節,首先,我們介紹WebRTC的組成模塊;其次,我們介紹WebRTC的API接口;最后,我們介紹組成模塊與接口之間的對應關(guān)系。

      2.1 組成模塊

      A. 會(huì )話(huà)管理

      WebRTC的會(huì )話(huà)管理也被稱(chēng)為抽象信令。抽象信令的作用是將具體業(yè)務(wù)與信令控制的分離,從而適應廣大Web應用中的信令控制。會(huì )話(huà)管理的實(shí)現有兩種方式:一種是以瀏覽器為主的實(shí)現方式ROAP(RTCWeb Offer/Answer Protocol),另一種是以Javascript為主的實(shí)現方式JSEP(Javascript Session Establishment Protocol)。前者的優(yōu)點(diǎn)在于可以直接使用現有協(xié)議棧實(shí)現;缺點(diǎn)是靈活度較低,無(wú)法支持私有協(xié)議,另外,如果將過(guò)多的協(xié)議棧集成到瀏覽器,將使得瀏覽器會(huì )變得“臃腫”。后者的優(yōu)勢在于靈活度高,能夠適用于多種協(xié)議。為提高會(huì )話(huà)管理的普適性,以及簡(jiǎn)化會(huì )話(huà)管理,W3C通過(guò)多次討論,最終采用了JSEP(JavaScript Session Establishment Protocal)方式來(lái)進(jìn)行會(huì )話(huà)管理。

      B. 音頻引擎

      音頻引擎負責從麥克到網(wǎng)絡(luò )側、網(wǎng)絡(luò )側到音箱的音頻處理。它包含的功能主要有音頻編解碼和聲音處理兩部分。在音頻編解碼上,WebRTC主要采用兩種語(yǔ)音編碼格式:iSAC(internet Speech Audio Codec)和iLBC(internet Low Bitrate Codec),來(lái)分別對寬帶與窄帶環(huán)境的語(yǔ)音進(jìn)行編碼。在聲音處理上,WebRTC主要包括回聲消除、錯誤隱藏和降噪處理等功能,用來(lái)降低由網(wǎng)絡(luò )抖動(dòng)和丟包等對聲音質(zhì)量造成的影響,并盡可能降低聲音延遲。

      C. 視頻引擎

      視頻處理引擎負責攝像機到網(wǎng)絡(luò )側、網(wǎng)絡(luò )側到屏幕顯示的視頻處理。它主要包括視頻編解碼和圖像處理。在視頻編解碼上,目前WebRTC主要采用VP8技術(shù)(未來(lái)VP9也將被集成到WebRTC中),使得WebRTC在較低碼率的環(huán)境,提供較高質(zhì)量的視頻。在圖像處理上,WebRTC主要包括抖動(dòng)緩沖和圖像增強等功能,用來(lái)降低從攝像機采集到的圖像的噪音。

      D. 網(wǎng)絡(luò )傳輸

      網(wǎng)絡(luò )傳輸負責對采集到的音視頻數據進(jìn)行加密、防火墻穿透和傳輸。WebRTC將設備采集到的音視頻數據在加密的情況下采用SRTP協(xié)議進(jìn)行傳輸,以確保信息在傳輸過(guò)程中的安全性。另外,WebRTC采用STUN、TURN和ICE等協(xié)議棧對VoIP網(wǎng)絡(luò )中的防火墻或者NAT進(jìn)行穿透。其中,STUN可以處理大部分NAT穿透問(wèn)題;TURN是STUN協(xié)議的一個(gè)增強版,專(zhuān)門(mén)用于處理對稱(chēng)形NAT穿透問(wèn)題;ICE是一個(gè)整合了STUN和TURN的框架,為VoIP或視頻通話(huà)配置以及媒體傳輸提供可靠的服務(wù)。

      圖 1 WebRTC總體架構,摘自百度百科
     

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 长沙县| 黄石市| 迭部县| 瑞丽市| 北宁市| 家居| 上饶县| 华阴市| 临夏市| 锡林郭勒盟| 茶陵县| 登封市| 厦门市| 通榆县| 遵化市| 巴东县| 乐清市| 潞西市| 株洲县| 邮箱| 马关县| 潢川县| 抚松县| 和政县| 赤城县| 青州市| 崇信县| 武汉市| 德昌县| 达拉特旗| 个旧市| 子洲县| 东城区| 科技| 弋阳县| 上栗县| 邵东县| 长寿区| 六盘水市| 衡水市| 博乐市| http://444 http://444 http://444 http://444 http://444 http://444