WebRTC直播現(xiàn)狀
現(xiàn)在使用WebRTC技術(shù)的公司越來(lái)越多了,如果你密切關(guān)注直播領(lǐng)域的話,你會(huì)發(fā)現(xiàn)一個(gè)很有趣的變化,隨著直播業(yè)務(wù)的增長(zhǎng),傳統(tǒng)的流媒體由于延時(shí)大不能滿足于各種應(yīng)用場(chǎng)景的需求,一些可替代性的解決方案紛紛登場(chǎng),而WebRTC是這些技術(shù)解決方案中的佼佼者。目前很多數(shù)的公司使用WebRTC做直播的架構(gòu)圖是采用圖1中的結(jié)構(gòu):

圖1
如何使用WebRTC來(lái)做直播?
通常推流端使用WebRTC將本地視頻上傳到流媒體服務(wù)器端,然后在服務(wù)端將WebRTC的流轉(zhuǎn)碼成RTMP,HLS,MPEG-DASH等,再通過(guò)傳統(tǒng)的流媒體通道進(jìn)行直播分發(fā)。
這個(gè)架構(gòu)還是借助傳統(tǒng)直播的方案,只是利用了WebRTC的特性將推流端到服務(wù)端之間的流傳進(jìn)行優(yōu)化,這樣做的最大問(wèn)題是服務(wù)端的性能消耗和直播分發(fā)的延時(shí),我們知道類(lèi)似HLS這樣的協(xié)議通常延時(shí)在15s+。
隨著應(yīng)用場(chǎng)景對(duì)于實(shí)時(shí)性要求的提高,上面的架構(gòu)無(wú)疑還是無(wú)法滿足需求的。通過(guò)anyRTC的運(yùn)營(yíng)數(shù)據(jù)和市場(chǎng)需求分析來(lái)看,更多的需求方希望看到更低延時(shí)的視頻流,以幫助他們完成更加豐富的場(chǎng)景需求。
而當(dāng)前這種架構(gòu)不能勝任實(shí)時(shí)直播的工作,因?yàn)樵趥鹘y(tǒng)直播架構(gòu)中緩存,分片等設(shè)計(jì)方式保障了直播的流暢性,但是卻犧牲了直播的實(shí)時(shí)性。
WebRTC能做什么
由于傳統(tǒng)直播方案無(wú)法應(yīng)對(duì)低延時(shí)直播場(chǎng)景,這就是為什么需要一個(gè)全新的直播架構(gòu),當(dāng)然低延時(shí)和實(shí)時(shí)性是必需的。但是由于一個(gè)協(xié)議的標(biāo)準(zhǔn)化和實(shí)施需要很長(zhǎng)時(shí)間,因此目前最佳的可選方案就是WebRTC,今年(2018年6月)WebRTC 1.0規(guī)范正式發(fā)布,各大廠商均表現(xiàn)出很高的積極性,而且現(xiàn)在大多數(shù)瀏覽器中已經(jīng)原生支持,這對(duì)WebRTC未來(lái)更加廣泛的應(yīng)用打下了非常夯實(shí)的基礎(chǔ)。

圖2
圖2是WebRTC做直播的架構(gòu),所有的流媒體都會(huì)走WebRTC通道,這樣可以保證整個(gè)流媒體從推流端到觀看端的每個(gè)環(huán)節(jié)都能使用WebRTC的特性。
當(dāng)然使用WebRTC做直播有很多難點(diǎn)需要攻克,廣播服務(wù)器需要具備大容量,大并發(fā),低延時(shí),可動(dòng)態(tài)伸縮,可災(zāi)備等一些列高級(jí)特性,而不僅僅是簡(jiǎn)單的媒體流轉(zhuǎn)發(fā)。
要做到這些,我們需要一個(gè)完全不同的服務(wù)器架構(gòu)來(lái)實(shí)現(xiàn)WebRTC流媒體的轉(zhuǎn)發(fā),這與當(dāng)今市場(chǎng)上的一些方案(開(kāi)源和商業(yè)方案)有所不同。因?yàn)楝F(xiàn)有的方案服務(wù)器上的WebRTC實(shí)現(xiàn)幾乎是背靠背的實(shí)現(xiàn)——它們?cè)诜?wù)端對(duì)每個(gè)連接模擬一個(gè)完整的客戶端來(lái)接收或轉(zhuǎn)發(fā)WebRTC的媒體流。這樣實(shí)現(xiàn)沒(méi)有問(wèn)題,但是它很難應(yīng)對(duì)上千、幾萬(wàn)或數(shù)百萬(wàn)的大并發(fā)連接。
anyRTC如何實(shí)現(xiàn)
anyRTC一直主推WebRTC技術(shù)方案對(duì)原有的直播系統(tǒng)進(jìn)行升級(jí)改造。anyRTC采用的是微服務(wù)分離架構(gòu),流媒體服務(wù)只對(duì)信令和媒體包進(jìn)行轉(zhuǎn)發(fā),這些我們定義為輕任務(wù);而類(lèi)似媒體處理、編解碼等重任務(wù)由單獨(dú)的業(yè)務(wù)服務(wù)進(jìn)行處理。
同時(shí)服務(wù)端之間的流分發(fā)如何保障低延時(shí),單機(jī)最大容量,系統(tǒng)容災(zāi),媒體流過(guò)防火墻,跨國(guó)分發(fā)流,流路徑跟蹤等等一些列問(wèn)題也需要考慮。由于篇幅有限這些問(wèn)題我們將在后續(xù)的文章中再做詳細(xì)討論。
結(jié)語(yǔ)
那么直播為什么不使用WebRTC呢,其中的緣由很多,可能是覺(jué)得WebRTC方案還不夠成熟,可能是因?yàn)榧夹g(shù)難度較高實(shí)現(xiàn)較復(fù)雜,可能是因?yàn)樾枨蟛黄惹校赡苣阏J(rèn)為這本身就是偽命題,也有可能是因?yàn)槟氵€不知道。無(wú)論因?yàn)槭裁丛颍琖ebRTC近幾年的發(fā)展勢(shì)頭都是不能夠忽略的,不久的將來(lái)WebRTC會(huì)在更多場(chǎng)景中廣泛應(yīng)用,而不僅僅是直播行業(yè)。
發(fā)表評(píng)論 取消回復(fù)