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