<i id="elpia"><td id="elpia"></td></i>
<cite id="elpia"><listing id="elpia"><em id="elpia"></em></listing></cite>
    <pre id="elpia"></pre>

    <blockquote id="elpia"><p id="elpia"><nav id="elpia"></nav></p></blockquote>

    全國服務熱線:0551-64931480

    11
    20-01

    WebRTC在直播上的應用

    云庫科技 671451 0

    WebRTC直播現狀

    現在使用WebRTC技術的公司越來越多了,如果你密切關注直播領域的話,你會發現一個很有趣的變化,隨著直播業務的增長,傳統的流媒體由于延時大不能滿足于各種應用場景的需求,一些可替代性的解決方案紛紛登場,而WebRTC是這些技術解決方案中的佼佼者。目前很多數的公司使用WebRTC做直播的架構圖是采用圖1中的結構:


    圖1

    如何使用WebRTC來做直播?

    通常推流端使用WebRTC將本地視頻上傳到流媒體服務器端,然后在服務端將WebRTC的流轉碼成RTMP,HLS,MPEG-DASH等,再通過傳統的流媒體通道進行直播分發。

    這個架構還是借助傳統直播的方案,只是利用了WebRTC的特性將推流端到服務端之間的流傳進行優化,這樣做的最大問題是服務端的性能消耗和直播分發的延時,我們知道類似HLS這樣的協議通常延時在15s+。

    隨著應用場景對于實時性要求的提高,上面的架構無疑還是無法滿足需求的。通過anyRTC的運營數據和市場需求分析來看,更多的需求方希望看到更低延時的視頻流,以幫助他們完成更加豐富的場景需求。

    而當前這種架構不能勝任實時直播的工作,因為在傳統直播架構中緩存,分片等設計方式保障了直播的流暢性,但是卻犧牲了直播的實時性。

    WebRTC能做什么

    由于傳統直播方案無法應對低延時直播場景,這就是為什么需要一個全新的直播架構,當然低延時和實時性是必需的。但是由于一個協議的標準化和實施需要很長時間,因此目前最佳的可選方案就是WebRTC,今年(2018年6月)WebRTC 1.0規范正式發布,各大廠商均表現出很高的積極性,而且現在大多數瀏覽器中已經原生支持,這對WebRTC未來更加廣泛的應用打下了非常夯實的基礎。


    圖2

    圖2是WebRTC做直播的架構,所有的流媒體都會走WebRTC通道,這樣可以保證整個流媒體從推流端到觀看端的每個環節都能使用WebRTC的特性。

    當然使用WebRTC做直播有很多難點需要攻克,廣播服務器需要具備大容量,大并發,低延時,可動態伸縮,可災備等一些列高級特性,而不僅僅是簡單的媒體流轉發。

    要做到這些,我們需要一個完全不同的服務器架構來實現WebRTC流媒體的轉發,這與當今市場上的一些方案(開源和商業方案)有所不同。因為現有的方案服務器上的WebRTC實現幾乎是背靠背的實現——它們在服務端對每個連接模擬一個完整的客戶端來接收或轉發WebRTC的媒體流。這樣實現沒有問題,但是它很難應對上千、幾萬或數百萬的大并發連接。

    anyRTC如何實現


    anyRTC一直主推WebRTC技術方案對原有的直播系統進行升級改造。anyRTC采用的是微服務分離架構,流媒體服務只對信令和媒體包進行轉發,這些我們定義為輕任務;而類似媒體處理、編解碼等重任務由單獨的業務服務進行處理。

    同時服務端之間的流分發如何保障低延時,單機最大容量,系統容災,媒體流過防火墻,跨國分發流,流路徑跟蹤等等一些列問題也需要考慮。由于篇幅有限這些問題我們將在后續的文章中再做詳細討論。

    結語

    那么直播為什么不使用WebRTC呢,其中的緣由很多,可能是覺得WebRTC方案還不夠成熟,可能是因為技術難度較高實現較復雜,可能是因為需求不迫切,可能你認為這本身就是偽命題,也有可能是因為你還不知道。無論因為什么原因,WebRTC近幾年的發展勢頭都是不能夠忽略的,不久的將來WebRTC會在更多場景中廣泛應用,而不僅僅是直播行業。

    評論列表(0)
    暫無評論
    欧美精品久久一级a 欧美牲交a欧美牲交aⅴ视 国产精品白丝jk黑袜喷水视频 国产欧美日韩综合旡码一区
    <i id="elpia"><td id="elpia"></td></i>
    <cite id="elpia"><listing id="elpia"><em id="elpia"></em></listing></cite>
    <pre id="elpia"></pre>

    <blockquote id="elpia"><p id="elpia"><nav id="elpia"></nav></p></blockquote>