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

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

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

音視頻通話難點:

音視頻編解碼原理

IP4中,設備在各自的內網,需要p2p打洞

音頻降噪和回聲消除

信令服務器:

設備連接的socket服務器

傳遞各個設備之間的信息:傳遞各個節點的sdp信息,傳遞ice信息

包含業務功能:如加入、離開房間等

打洞服務器:

為什么打洞?

IP4中,設備在各自的內網,各自的內網不能通信,而想要通信,就需要突破內網限制;

如果用服務器中轉,則會加大服務器開銷和增加延時;

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

NAT

網絡地址轉換

設備若想鏈接公網,需要經過路由轉換,將私有IP轉換為公網IP

在設備和路由中存在IP端口映射表NAPT

如:

設備A的某個應用私有IP端口為:192.168.1.10:9000;

設備A連接的路由器L的公網IP為:200.180.190.11;

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

200.180.190.11:21111就是設備A的某個應用的公網IP地址和端口的映射;

SDP:

描述了客服端到服務端通信的各個網絡地址及端口等信息;

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

兩個設備實現通信要求:

設備A、設備A的路由AL、設備B、設備B的路由BL;

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

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

打洞流程:

角色:信令服務器、打洞服務器、設備A、設備A的路由AL、設備B、設備B的路由BL;

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

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

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

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

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

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

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

 

 

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

過程一:1->2

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

過程二:3->4

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

過程三:5->6

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

過程四:7->8->9

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

 

webrtc業務流程:

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

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

第一種情況

設備A進入房間時,沒有其他設備;

設備A進入房間,信令服務器S給設備A返回設備A的唯一標識符socketId;

設備A開啟本地預覽:設置視頻源、音頻源、渲染到surface;

等待獲取其他設備發送的請求offer...

準備sdp交換

設備A收到信令服務器S發送來的設備B的socketId和sdp;

設備A請求信令服務器,信令服務器返回設備A到打洞服務器的網絡節點各個sdp

設備A設置本地sdp、設置收到的遠端sdp;

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

開始打洞:ICE交換

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

設備A通過信令服務器S將ICE信息發送給設備B;

等待設備B連接;

ICE交換完成后

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

第二種情況

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

此時設備B需要主動去呼叫設備A;

設備B連接信令服務器S;

設備B進入房間,信令服務器S給設備B返回設備B的唯一標識符socketId,和其他存在的設備的socketId列表;

設備B開啟本地預覽:設置視頻源、音頻源、渲染到surface;

開始sdp交換

設備B請求打洞服務器T,獲取設備B到打洞服務器T的網絡節點的各個sdp

設備B設置自己的sdp;

設備B使用信令服務器S通過socketId列表將自己的sdp發送給其他設備A;

設備A收到sdp后,設備A使用信令服務器S通過設備B的socketId,將自己的sdp發送給其他設備B;

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

開始打洞:ICE交換

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

設備A通過信令服務器S將ICE信息發送給設備B;

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

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

分享到:
標簽:Webrtc
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定