999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于瀏覽器的音視頻通訊系統實現

2016-06-13 09:00:24軍事交通學院
大陸橋視野 2016年6期

宋 瑞/軍事交通學院

?

基于瀏覽器的音視頻通訊系統實現

宋 瑞/軍事交通學院

【摘 要】WebRTC因其開放的標準、簡單易擴展、同運營商網絡的互聯互通、與其他技術結合等特性,本文旨在通過對W3C WebRTC標準的跟蹤和業界WebRTC開源項目的系統分析,梳理出WebRTC應用所涉及的關鍵技術。

【關鍵詞】WebRTC; 通訊系統;瀏覽器;

WebRTC(Web Real-Time Communication)Web上的實時通信,泛指基于網頁的實時通信業務,如電話、視頻會議、即時消息等。WebRTC項目的主要目的是讓Web開發者不用其他的軟件就能夠便利的開發出實時的,基于瀏覽器的多媒體應用,Web開發者也無需對多媒體的數字信號處理過程過多在意,只需簡單的Javascript和HTML5技術即可即可實現。WebRTC基于標準的WHATWG協議,給予了視頻會議的核心技術,包括音視頻的采集、編解碼、網絡傳輸、顯示等功能,并且還支持跨平臺:windows,linux,mac,android。

1.業界WebRTC原型概況

1.1業界WebRTC

(1)官方demo

沒有用任何封裝庫,信令機制使用了XHR和Google App Engine Channel API,可實現瀏覽器間的視頻音頻通信。

(2)愛立信實驗室開發的WebRTC demo

這是第一個基于瀏覽器的WebRTC視頻通信demo,愛立信為此還開發了一個基于WebKit的瀏覽器用于支持WebRTC,叫做Bowser browser(當時市場上可能還沒有支持WebRTC的瀏覽器)。

(3)華為WebRTC

華為WebRTC網絡并不僅僅著眼于WebRTC用戶系統,而是秉持CAAS(Communication as a Service)的核心理念,開發使用簡單,作為其WebRTC能力開放網關地關鍵足點。

1.2業務流程分析

(1)向Participations UA返回成功將其加入會議室roomName的消息,ParticipationUA收到消息后添加本地的視頻流到指定位。

(2)向Host UA廣播Participations UA加入到會議室roomName的通知,廣播消息中包含Participations UA的標識。

(3)Host UA在收到Signaling Server廣播Participations UA加入到會議室roomName的通知后,會著手進行兩個方面的工作。

(4)發起與Participation UA的媒體協商:首先獲取并保存本地的媒體面信息offer,并途經Signaling Server路由轉發給ParticipationsUA。Participations UA收到offer后,保存Host UA的媒體面信息并據此創建協商媒體信息answer,最后將answer途經Signaling Server路由轉發給Host UA。

至此,Host UA與Participations UA之間已可以進行端到端的視頻通話。

2.多方視頻會議系統設計與實現

2.1 設計方案

WebRTC標準Javascript接口由瀏覽器提供,客戶端與服務端雙向通信采用WebSocket(客戶端由瀏覽器提供支持,服務端由tomcat提供支持),jain-sip采用Mobicents開源的JavaScript庫來提供SIP棧的支持。WebRTC封裝庫建立在WebRTC和jain-sip的基礎上,它利用jain-sip提供的SIP棧功能組裝SIP請求并經過瀏覽器提供的WebSocket傳輸給服務端。

WebRTC封裝庫的主要功能如下:屏蔽不同瀏覽器廠商在WebRTC標準接口實現上的差異(包括接口命名差異和方法調用差異);將客戶端與服務端之間雙向通信連接建立機制以及通信的細節,做到向上層Web應用開發者透明;在端到多端的媒體協商以及防火墻穿越機制上,做到向開發者透明。

2.2 關鍵技術

2.2.1 SIP信令交互技術

在W3C WebRTC標準中,對客戶端與服務端之間的信令沒有具體的標準。SIP以其簡易、靈巧和可伸展等特性,得到越來越多的關注和贊同,已成為下一代Web通信事實上的規范。正是基于這樣一種特點,本項目開發以SIP為核心的WebRTC視頻通信系統。為完成客戶端與服務端SIP信令交互,本系統在客戶端側使用其對JAIN-SIP標準的參考實現來提供SIP棧服務,服務端側利用SIP Servlet API來處理客戶端側請求或進行路由分發,客戶端與服務端之間的雙向通信采用了WebSocket協議。在本系統中,服務端實際上就是充當個背靠背代理的角色。

2.2.2.多方媒體協商技術

多方媒體協商與防火墻穿越協議機制是實現WebRTC多方視頻會議的關鍵所在。在具體的實現策略上,WebRTC封裝庫將多方的協商過程分解成多個端到端的協商過程,可通過后入會者發起來實現。這里簡要描述一下后入會者協商的過程:

(1)第一方與第二方情形下,由一對PeerConnection對象來完成offer/answer的協商。主動協商的一方PeerConnection利用接口createOffer獲取到本方的媒體面相關信息后,將該信息通過信令服務器傳送到對端。對端的PeerConnection對象保存該信息,并利用接口createAnswer獲取當地的媒體面信息,并將其通過信令服務器回傳給主動協議的一方。這樣,兩方之間的協商完成。

(2)當第三方加入會議時,應用程序會創建兩個PeerConnection對象,一個用來與第一方進行協商,另一個用于與第二方進行協商。第二方和第三方在收到第一方對應的PeerConnection對象發送過來的offer信息后,將分別創建一個新的PeerConnection對象來負責與之交互,并按照1)所述的方法完成與第三方的媒體協商過程。

2.2.3 NAT/防火墻穿越技術

這種技術是把內部網絡(簡稱為內網)私有IP地址轉變為外網公共IP地址,它使得局域范圍內的多臺主機利用同一個公共IP地址就可以連接到外網。一方面,NAT技術可以在很大程度上緩解了公網IP地址緊缺的問題,并有效減少了內網主機受外部系統攻擊的可能性。另一方面,對于WebRTC等Web音視頻通信而言,NAT的應用會致使其在跨局域網的環境中失效。這是因為,位于局域網的主機無法在公網上進行路由,進而無法完成不同局域網內部主機相互之間的P2P通信。

3.多方視頻會議系統性能測試與分析

3.1環境搭建

3.1.1下載安裝jdk

進入oracle官網downloads專區,選擇下載版本jdk-6u13-windows-i586-p.exe,雙擊運行即可安裝。

3.1.2配置jdk環境變量

在控制面板系統和安全系統高級系統設置環境變量系統變量中新建環境變量JAVA_HOME并設置成下面的格式,找到Path和CLASSPATH分別設置成如下所示的格式。JAVA_HOME

3.2.核心流程

在服務端側,處理“創建會議”和“加入會議”的邏輯實際上也是作為兩個分支集成在同一個大的處理邏輯當中(SIP Servlet里面的doSubscribe),為了區別兩者不同的請求,我們事先約定按照客戶端SUBSCRIBE請求頭部里面的Expires的整型值來確定:當請求中的Expires為3600時,是創建會議的請求,當請求中的Expires值為1800時,是加入會議。

用戶加入會議成功后,服務端返回的信息,顯示本地視頻流用的是HTML5的getUserMedia接口。當然,獲取到這個媒體流Stream后,還需要借助HTML5 URL接口將其轉換成url,然后再添加到HTML5 〈video〉標簽的src屬性當中即可。

PeerConnection是WebRTC的標準接口,用于建立與遠端瀏覽器的連接,W3C標準里面。Offer和answer是一對JSEP SDP格式的媒體協商信息。其中,offer由主動發起協商的一方的PeerConnectioncreateOffer創建。在保存本地媒體面信息(PeerConnection.setLocalDescription(offer))后,將其作為INVITE請求的內容經服務端轉發至協商的對方。對方在收到offer后,創建一個對應的PeerConnection對象并保存該信息(PeerConnection.setRemoteDescription(offer))。然后,創建協商的媒體信息answer(PeerConnection.createAnswer)返回給主動發起協商的一方(作為SIP 200 OK響應的內容)。主動發起協商的一方收到后保存answer.至此,完成端到端的媒體協商過程。

3.3連通性測試

在offer/answer里面,除了音視頻編解碼信息之外,還有用于做連通性測試的ice-candidates。Ic e-candidates是ICE客戶端(集成在WebRTC當中)從ICE Server獲取到的。

在ice-candidates里面,包括三類地址:本地地址(local ip + local port)、NAT對外映射的地址和端口(NAT ip + NAT port,由ICE服務器返回)以及中繼地址和端口(TURN ip + TURN port,由ICE服務器返回)。

當通信的雙方通過offer/answer對獲取到對端的ice-condidates后,會按照優先級組合并進行連通性測試。與此同時,對端也會按照同樣的組合方式進行連通性測試。

4.結論

作為一種新興的技術,WebRTC在最大程度上簡化了網絡即時通信的復雜程度,它第一次讓Web音視頻通信等過去必須由專業人員才能實現的插件功能離普通的Web開發者如此之近。WebRTC在技術上和標準上也都取得了長足的進步。

參考文獻:

[1]林鴻,王松,楊鑫,付斌.基于WebRTC技術的應用及平臺技術開發與設計[J].電信科學,2013,29(9):20-25.

[2]Justin Uberti,Cullen Jennings.Javascript Session Establishment Protocol.22 Octobe r 2013.Ac tive Internet-Draft[EB/OL].http://http://datatracker.ietf.org/doc/draft-ietf-rtcweb-jsep/

[3]屈振華,李慧云,張海濤,龍顯軍.WebRTC技術初探[J].電信科學,2012,28(10):106-110.

[4]胡敏,劉六程,劉鵬.基于WebRTC的視頻會議系統的設計與實現[J].電視技術.

主站蜘蛛池模板: 国产91成人| 国内精品久久久久鸭| 农村乱人伦一区二区| 69视频国产| 午夜国产理论| 国产91色| 亚洲精品无码在线播放网站| 极品国产在线| 伊人成人在线视频| 青青草综合网| 国内精品视频区在线2021| 日韩毛片免费视频| 亚洲一级无毛片无码在线免费视频| 国产av剧情无码精品色午夜| 亚洲成人一区在线| 国产91色在线| 亚洲中文精品人人永久免费| 无码一区二区波多野结衣播放搜索| 国产成人喷潮在线观看| 免费A级毛片无码免费视频| AV熟女乱| 国产又爽又黄无遮挡免费观看 | 国产不卡在线看| 九九视频免费在线观看| 19国产精品麻豆免费观看| 国产精品福利导航| 国产成人久久综合777777麻豆 | 九九久久精品免费观看| 久久精品亚洲热综合一区二区| 久久精品一品道久久精品| 不卡的在线视频免费观看| 中文字幕在线看| 视频一本大道香蕉久在线播放| 国产成人精品免费视频大全五级 | 久久人人97超碰人人澡爱香蕉 | 亚洲第一黄色网址| 97成人在线视频| 无码又爽又刺激的高潮视频| 2020精品极品国产色在线观看 | 免费毛片网站在线观看| 秋霞国产在线| 国产免费观看av大片的网站| 欧美第九页| 激情视频综合网| 久久公开视频| 久久国产av麻豆| 在线播放91| 成人免费一区二区三区| 精品三级网站| 久久精品免费看一| 欧美性爱精品一区二区三区| 夜精品a一区二区三区| 狠狠色香婷婷久久亚洲精品| 欧美日韩一区二区三区四区在线观看 | 欧美a在线| 黄色网址免费在线| 大学生久久香蕉国产线观看| 五月激激激综合网色播免费| 五月婷婷亚洲综合| 毛片基地视频| 亚洲国产成熟视频在线多多| 国产网友愉拍精品视频| 人妻精品久久无码区| 亚洲性日韩精品一区二区| 91成人免费观看| 国产精品30p| 欧美在线三级| 国产精品30p| 日本三级黄在线观看| 国产网站一区二区三区| 九色视频一区| 日韩视频精品在线| 国产成人无码AV在线播放动漫| 欧美一级片在线| 看你懂的巨臀中文字幕一区二区| 午夜精品区| 欧美在线国产| 午夜精品区| av在线5g无码天天| 国产情精品嫩草影院88av| 成年人福利视频| 制服丝袜在线视频香蕉|