日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

音視頻通話難點:

音視頻編解碼原理

IP4中,設(shè)備在各自的內(nèi)網(wǎng),需要p2p打洞

音頻降噪和回聲消除

信令服務(wù)器:

設(shè)備連接的socket服務(wù)器

傳遞各個設(shè)備之間的信息:傳遞各個節(jié)點的sdp信息,傳遞ice信息

包含業(yè)務(wù)功能:如加入、離開房間等

打洞服務(wù)器:

為什么打洞?

IP4中,設(shè)備在各自的內(nèi)網(wǎng),各自的內(nèi)網(wǎng)不能通信,而想要通信,就需要突破內(nèi)網(wǎng)限制;

如果用服務(wù)器中轉(zhuǎn),則會加大服務(wù)器開銷和增加延時;

若不用中轉(zhuǎn),就需要點對點(p2p)打洞,來實現(xiàn)通信;

NAT

網(wǎng)絡(luò)地址轉(zhuǎn)換

設(shè)備若想鏈接公網(wǎng),需要經(jīng)過路由轉(zhuǎn)換,將私有IP轉(zhuǎn)換為公網(wǎng)IP

在設(shè)備和路由中存在IP端口映射表NAPT

如:

設(shè)備A的某個應(yīng)用私有IP端口為:192.168.1.10:9000;

設(shè)備A連接的路由器L的公網(wǎng)IP為:200.180.190.11;

那么在路由器L中會有一個端口映射設(shè)備A: 200.180.190.11:21111;

200.180.190.11:21111就是設(shè)備A的某個應(yīng)用的公網(wǎng)IP地址和端口的映射;

SDP:

描述了客服端到服務(wù)端通信的各個網(wǎng)絡(luò)地址及端口等信息;

ps:一段文本,就像一個列表,記錄了客戶端到服務(wù)端,中轉(zhuǎn)次數(shù)及各個中轉(zhuǎn)點的路由信息;

兩個設(shè)備實現(xiàn)通信要求:

設(shè)備A、設(shè)備A的路由AL、設(shè)備B、設(shè)備B的路由BL;

設(shè)備A若想給設(shè)備B發(fā)消息,AL需要知道B在BL中的IP和端口映射;

同理,設(shè)備B若想給設(shè)備A發(fā)消息,BL需要知道A在AL中的IP和端口映射;

打洞流程:

角色:信令服務(wù)器、打洞服務(wù)器、設(shè)備A、設(shè)備A的路由AL、設(shè)備B、設(shè)備B的路由BL;

通過信令服務(wù)器(socket服務(wù)器)將設(shè)備A到打洞服務(wù)器的各個sdp發(fā)送給設(shè)備B;

通過信令服務(wù)器(socket服務(wù)器)將設(shè)備B到打洞服務(wù)器的各個sdp發(fā)送給設(shè)備A;

設(shè)備A嘗試發(fā)送一條消息到設(shè)備B,這條消息是發(fā)送不過去的;因為BL里沒有A和AL的映射IP和端口;

但是此時AL會在自己的NAPT表中記錄B和BL的映射IP和端口;

設(shè)備B發(fā)送一條消息給設(shè)備A,這條消息時可以發(fā)送到的。因為AL的NAPT表中有B和BL的映射IP和端口;并且BL會在自己的NAPT表中記錄A和AL的映射IP和端口;

此時A和B就可以直接互相發(fā)送消息了,不再需要服務(wù)器了;

音視頻系列:Webrtc音視頻通話

 

 

整個過程就是序號1->2->3->4->5->6->7->8>9

過程一:1->2

此過程為用戶B向服務(wù)器請求向用戶A打洞

過程二:3->4

此過程為服務(wù)器相應(yīng)用戶B的打洞請求,告訴用戶A用戶B想與你打洞(數(shù)據(jù)包中包含用戶B的地址信息)。

過程三:5->6

用戶A主動發(fā)一條信息給用戶B,目的是為了使得路由器A中能夠有一條關(guān)于路由B的IP的路由信息(注意不是用戶B,用戶B是私有IP),就如圖所示,這條信息會被丟棄的,因為路由B的路由表中沒有路由A的IP的信息。

過程四:7->8->9

用戶B再發(fā)一條信息給用戶A,因為此時路由A的路由表中有關(guān)于路由B的IP的路由信息,此時路由A就能路由給用戶A了,至此,用戶A就能直接收到用戶B發(fā)的信息了。注意,此時用戶A發(fā)給用戶B不需要打洞,因為路由B中已經(jīng)有關(guān)于路由A的IP的路由信息了。

 

webrtc業(yè)務(wù)流程:

音視頻一對一通話、多對多會議都是基于房間進行;

角色:信令服務(wù)器S、打洞服務(wù)器T、設(shè)備A(被請求)、設(shè)備A的路由AL、設(shè)備B(主請求)、設(shè)備B的路由BL;

第一種情況

設(shè)備A進入房間時,沒有其他設(shè)備;

設(shè)備A進入房間,信令服務(wù)器S給設(shè)備A返回設(shè)備A的唯一標(biāo)識符socketId;

設(shè)備A開啟本地預(yù)覽:設(shè)置視頻源、音頻源、渲染到surface;

等待獲取其他設(shè)備發(fā)送的請求offer...

準(zhǔn)備sdp交換

設(shè)備A收到信令服務(wù)器S發(fā)送來的設(shè)備B的socketId和sdp;

設(shè)備A請求信令服務(wù)器,信令服務(wù)器返回設(shè)備A到打洞服務(wù)器的網(wǎng)絡(luò)節(jié)點各個sdp

設(shè)備A設(shè)置本地sdp、設(shè)置收到的遠端sdp;

設(shè)備A使用信令服務(wù)器S通過收到的socketId將自己的sdp發(fā)送給其他設(shè)備B;sdp交換完成

開始打洞:ICE交換

設(shè)備A通過異步消息獲得打洞服務(wù)器返回的自己的ICE信息;

設(shè)備A通過信令服務(wù)器S將ICE信息發(fā)送給設(shè)備B;

等待設(shè)備B連接;

ICE交換完成后

獲取遠端設(shè)備B的視頻流、音頻流,進行解碼播放;

第二種情況

設(shè)備B進入房間時,已有其他設(shè)備,如:設(shè)備A...;

此時設(shè)備B需要主動去呼叫設(shè)備A;

設(shè)備B連接信令服務(wù)器S;

設(shè)備B進入房間,信令服務(wù)器S給設(shè)備B返回設(shè)備B的唯一標(biāo)識符socketId,和其他存在的設(shè)備的socketId列表;

設(shè)備B開啟本地預(yù)覽:設(shè)置視頻源、音頻源、渲染到surface;

開始sdp交換

設(shè)備B請求打洞服務(wù)器T,獲取設(shè)備B到打洞服務(wù)器T的網(wǎng)絡(luò)節(jié)點的各個sdp

設(shè)備B設(shè)置自己的sdp;

設(shè)備B使用信令服務(wù)器S通過socketId列表將自己的sdp發(fā)送給其他設(shè)備A;

設(shè)備A收到sdp后,設(shè)備A使用信令服務(wù)器S通過設(shè)備B的socketId,將自己的sdp發(fā)送給其他設(shè)備B;

設(shè)備B設(shè)置收到的遠端sdp(可能有多個);sdp交換完成

開始打洞:ICE交換

設(shè)備A通過異步消息獲得打洞服務(wù)器返回的自己的ICE信息;

設(shè)備A通過信令服務(wù)器S將ICE信息發(fā)送給設(shè)備B;

設(shè)備B根據(jù)收到的ICE信息去發(fā)送一個請求;此時設(shè)備B鏈接的路由器BL里就有了設(shè)備A在路由AL的IP和端口映射信息;ICE交換完成

設(shè)備B鏈接其他設(shè)備的視頻流、音頻流,進行解碼播放;

分享到:
標(biāo)簽:Webrtc
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定