1.網(wǎng)絡(luò)網(wǎng)格
要講webRTC擴(kuò)展到多個用戶的連接,就需要在一個通話中包含多個用戶,需要用到網(wǎng)絡(luò)網(wǎng)格。
網(wǎng)絡(luò)網(wǎng)格可以在一個完全的網(wǎng)絡(luò)中讓每一個節(jié)點(diǎn)都能與其他節(jié)點(diǎn)對話,而在一個部分網(wǎng)格中,每個節(jié)只能與一個子集中的節(jié)點(diǎn)對話。
- 在webRTC中,一個瀏覽器在統(tǒng)一時間所能支持的鏈接數(shù)量是無限的
- 但是每個鏈接都會附加一個開銷,所以當(dāng)一個用戶加入時,鏈接的總數(shù)就會加倍
因?yàn)橛猩鲜鰡栴},所以就需要用到星形網(wǎng)絡(luò)。
2.星形網(wǎng)絡(luò)
在一個星狀網(wǎng)絡(luò)中,每個用戶都連接到一個主節(jié)點(diǎn),該節(jié)點(diǎn)將正確的視頻流發(fā)送到網(wǎng)絡(luò)中的其他節(jié)點(diǎn)。
其中,主節(jié)點(diǎn)可以是通話中的任意一個節(jié)點(diǎn),其他的節(jié)點(diǎn)都通過webRTC連接到主節(jié)點(diǎn),而主節(jié)點(diǎn)則作為中繼為其他節(jié)點(diǎn)傳輸流數(shù)據(jù),最常見的就是用MCU服務(wù)器作為一個主節(jié)點(diǎn)。
2.1 MCU多點(diǎn)控制單元
典型MCU連接的工作流程:
- 所有用戶成功連接到MCU服務(wù)器
- 在通話中的所有用戶都將他們的視頻和音頻發(fā)送到服務(wù)器
- MCU將對每一個輸入的流進(jìn)行單獨(dú)的解碼和處理
- MCU可以選擇將獨(dú)立的視頻流重新編碼成一個單獨(dú)的流以節(jié)約帶寬
- MCU將含有其他用戶視頻數(shù)據(jù)的流回傳給用戶
這里主要的不同在于,將其他的視頻流打包并且只提供一個流回傳到每一個用戶,這可以在很大程度上減少帶寬已支持大量用戶進(jìn)行通話。