內容整理自2019RTC大會webrtc工作坊李超老師演講ppt
1.實時通信的主要矛盾
實時通信與網絡傳輸的矛盾
網絡傳輸質量與音視頻服務質量的矛盾
2.webrtc能做啥
音視頻實時互動
遊戲,即時通訊,文件傳輸等
音視頻處理(迴音消除,降噪)
3.webrtc的主要內容
音視頻採集
webrtc信令服務器的實現
NAT,STUN,TURN,ICE
媒體協商
webrtc使用的sdp
1對1實時通話
4.服務質量的主要內容
(1)TCP/UDP如何選擇
(2)如何保證網絡服務質量
延遲低,丟包 RTX
延遲高 FEC
jitterBuffer 網絡平滑,防止亂序
(3)網絡帶寬的評估
GCC-REMB
GCC-TransportCC
基於丟包的評估算法
基於延遲的評估算法
(4)減少網絡上傳輸的內容
固定帶寬減少內容:動態碼流,simulcast,SVC,業務定製
5.流媒體服務器的主要內容
多人互動架構方案
各媒體服務器架構模型
如何實現流媒體服務器
6.整體框架
7.音視頻採集
枚舉音視頻設備
採集音視頻數據
8.webrtc信令系統
信令系統的作用:
①讓雙方進入到同一個房間進行管理
②交換雙方的媒體能力(SDP)
③交換雙方的candidate數據
9.房間管理狀態機
10.信令系統的實現
socket.io
websocket/protoo
11.客戶端信令消息
join加入房間
leave離開房間
message端到端消息
12.端到端信令消息
offer消息
answer消息
candidate消息
13.服務端信令消息
joined已加入房間
otherjoin其他用戶加入房間
full房間人數已滿
leaved已離開房間
bye對方離開房間
14.直播系統消息處理流程
15.webrtc傳輸
NAT(network address translator)
STUN(simple traversal of UDP through NAT)
TURN(traversal using relays around NAT)
ICE(interactive connectivity establishment)
16.NAT類型
完全錐形NAT
地址限制錐形NAT
端口限制錐形NAT
對稱性NAT
17.candidate類型
主機候選者
反射候選者
中繼候選者
18.ICE具體做些什麼
收集candidate
對candidate pair排序
連通性檢查
19.candidate關係圖
意思大概就是能直接用本機地址通信就直接用本機地址,不能的話就NAT,還不行的話就通過中繼。
20.媒體協商過程
21.SDP規範
(1)會話層
會話的名稱與目的
會話的存活時間
會話中包括多個媒體信息
(2)媒體層
媒體格式
傳輸協議
傳輸IP與端口
媒體負載類型
22.webrtc中的SDP
SDP組成:會話元,網絡描述,流描述,安全描述,服務質量
23.客戶端流程圖
(1)加入房間
(2)離開房間
24.端對端連接的基本流程
25.多人音視頻架構
mesh方案
MCU方案
SFU方案
26.mesh通信模型
所有人之間兩兩建立P2P連接
27.MCU通信模型
multipoint conference unit
服務器把所有人的視頻合併爲一路視頻,音頻合併成一路音頻,並轉發給所有人,注意。給一個人轉發的混合後的音視頻不包含這個人本身的音視頻。
優點是帶寬小,缺點是不夠靈活,因爲每個終端收到的都是混合後的一路音視頻,無法在客戶端側分別處理各路音視頻。
28.SFU通信模型
selective forwarding unit
中心服務器轉發,將收到的音視頻轉發給所有其他人。
這樣每個終端都能收到分開的各路音視頻,可以靈活的進行處理,但佔用帶寬大。
29.一些成熟的開源架構
mediasoup架構
medooz架構
janus架構
licode架構