基于webrtc多人音视频的研究(一)
所周知,WebRTC非常適合點對點(即一對一)的音視頻會話。然而,當(dāng)我們的客戶要求超越一對一,即一對多、多對一設(shè)置多對多的解決方案或者服務(wù),那么問題就來了:“我們應(yīng)該采用什么樣的架構(gòu)?” 。簡單的呢有人會考慮copy多個p2p就完成了多人之間的會話,可并沒有考慮到到來的問題:cpu、內(nèi)存、尤其是流量問題;傳統(tǒng)的解決方案是MCU服務(wù)器,利用服務(wù)器硬件的能力去mix音視頻,然后傳給各個參與者,這能到達預(yù)想的,這個亦能到達我們的需求;使用基于網(wǎng)狀拓撲結(jié)構(gòu)的結(jié)構(gòu)可能是前兩者的折中之選。
盡管能實現(xiàn)WebRTC多人音視頻的方案,該技術(shù)的最流行的用途不局限于多方視頻會議場景。不要以為只是傳統(tǒng)的音視頻會議室,更多的情況包括:智能硬件、ipcamera、在線課堂,實時直播等。在每一種情況下,服務(wù)器的能力是能夠從多個源的媒體流分發(fā)到多個客戶端。所以...如果你是一個服務(wù)供應(yīng)商如何才能在實現(xiàn)支持WebRTC的多方拓撲結(jié)構(gòu)?
有幾種不同的架構(gòu)根據(jù)您的要求,可能是合適的。這些架構(gòu)基本上他們圍繞二點:
§?集中VS對等網(wǎng)絡(luò)(P2P)
§?混合VS路由。
我將在這里介紹最流行的解決方案。如果你需要去深入到協(xié)議的影響和實施細則的架構(gòu),你可以找到所有的相關(guān)信息,RTP拓撲IETF文檔。
Mesh解決方案
Mesh方法是最簡單的解決方案。因為它不需要假設(shè)任何服務(wù)器,而且直接使用成熟的WebRTC傳輸方案。該體系結(jié)構(gòu)基于從每一個發(fā)送者創(chuàng)建多個一對一的數(shù)據(jù)流到每一個接收端。
?
Mesh解決方案
即使它看起來像一個低效的解決方案,在實踐中是非常有效的,并且延遲最低,每個接收端都會根據(jù)實際情況產(chǎn)生不同的比特率。
唯一的問題是,這種解決方案需要大量的上行帶寬將媒體流同時發(fā)送至所有目的地,現(xiàn)有的設(shè)備實現(xiàn)所需的CPU功率會顯著上升。
Mixer解決方案
Mixer的做法是多人視頻會議的傳統(tǒng)解決方案,并且使用多年取得了巨大成功。這一成功可以歸功于它需要客戶端更少消耗這一事實。該架構(gòu)基于具有中心點保持與每個參與者一對一的流的特性。中心元件接收并混合每個傳入的音頻流和視頻流,以合成一個單一的流出到每一個參加者。在視頻會議行業(yè)對于這些集中元件的一個常見術(shù)語是多點控制單元(MCU)。在實踐中,使用一個MCU的通常是指一個混合器容器。
?
Mixer解決方案
混頻器是供傳統(tǒng)設(shè)備操作間很好的解決方案。它們還允許全位速率適配,因為混頻器可以產(chǎn)生不同的輸出流,所以每個接收器有不同的品質(zhì)?;旌掀鹘鉀Q方案的另一個優(yōu)點是它可以利用硬件設(shè)備編解碼。
主要缺點是在MCU的基礎(chǔ)設(shè)施成本高。此外,由于混合需要解碼和再編碼,這引入額外的延遲和質(zhì)量的損失。最后,轉(zhuǎn)碼和組合物可在理論上導(dǎo)致對應(yīng)用程序的用戶界面的彈性較小(盡管有此問題的解決方法)。
Router解決方案
Router(或中繼)的辦法使得H.264 SVC基礎(chǔ)設(shè)施普及,這也正是廣泛應(yīng)用的。該架構(gòu)基于具有中心點從每個發(fā)送器接收一個流并發(fā)送出一個流到每一個參與者。這個中心點只做數(shù)據(jù)包檢測和轉(zhuǎn)發(fā),而不是昂貴的編碼和實際的媒體的解碼。常見術(shù)語是SFU。
?
Router解決方案
Router提供一個便宜的可擴展的多方傳輸,具有較好的延遲性、與傳統(tǒng)的mixer解決方案相比沒有質(zhì)量劣化。
這種方案非常適合大并發(fā)的事實會議和直播。目前較成熟的服務(wù)提供商就是聲網(wǎng)
來一張各個解決方案的流量圖?
我應(yīng)該使用哪種架構(gòu)?
這個就需要根據(jù)自己的項目的需要了。其實,商業(yè)解決方案,包括上述所有方案,往往需要根據(jù)客戶的實際應(yīng)用場景選擇對于的方法。不過,也有經(jīng)驗,你可以使用一些通用規(guī)則。
1、如果您僅是提供P2P音視頻傳輸?shù)姆?wù),Mesh架構(gòu)可能是最適合你的。另外,如果基礎(chǔ)設(shè)施的成本不是問題,并且參與者具有異構(gòu)連接,這可以是一個很好的解決方案。
2、假設(shè)你提供企業(yè)級服務(wù),且有較好的寬帶和高效的硬件(即一個企業(yè)內(nèi)部服務(wù)),參加人數(shù)是有限的,那么你非常適合Mixer方案。
3、一般來說,如果你提供大規(guī)模服務(wù)的,應(yīng)優(yōu)先考慮到Router的方法。Router傳輸接近把情報在網(wǎng)絡(luò)的邊界,構(gòu)建最終用戶應(yīng)用程序時,以達到更好的可擴展性和靈活性的網(wǎng)絡(luò)的范例。
總結(jié)
以上是生活随笔為你收集整理的基于webrtc多人音视频的研究(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PKG_CONFIG_PATH错误提示解
- 下一篇: WebRtc音视频实时通信--基本术语