行業(yè)資訊
云直播服務器支持webrtc推流嗎?經(jīng)??吹絎ebRTC的點對點的視頻, 能不能做一個平臺,讓別人通過WebRTC播放視頻直播,讓粉絲都可以看見。
針對主播推流使用 RTMP 存在的 TCP 鏈接耗時過長、擁塞控制完全依賴 TCP 傳輸層、無法提供實時帶寬數(shù)據(jù)來動態(tài)調(diào)整視頻編碼碼率等問題引起的推流延遲和卡頓。搭建一個在線課堂的直播平臺,考慮到清晰度和延遲性,我們一致認為使用 WebRTC 最合適。
云直播服務器:http://www.bxgb88.com/cloud/hk.html
原因有兩點:首先是“點對點通信”非常吸引我們,不需要中間服務器,客戶端直連,通信非常方便;再者是 WebRTC 瀏覽器原生支持,其他客戶端支持也很好,不像傳統(tǒng)直播用 flv.js 做兼容,可以實現(xiàn)標準統(tǒng)一。
然而令我非常尷尬的是,社區(qū)看了好幾篇文章,理論架構寫了一堆,但沒一個能跑起來。WebRTC 里面概念很新也很多,我們可以通過以下幾點理解它的通信流程。
一、云直播服務器中的 WebRTC推流是什么意思?
WebRTC (Web Real-Time Communications) 是一項實時通訊技術,它允許網(wǎng)絡應用或者站點,在不借助中間媒介的情況下,建立瀏覽器之間點對點(Peer-to-Peer)的連接,實現(xiàn)視頻流和音頻流或者其他任意數(shù)據(jù)的傳輸。
簡單的說,就是 WebRTC 可以不借助媒體服務器,通過瀏覽器與瀏覽器直接連接(點對點),即可實現(xiàn)音視頻傳輸。
如果你接觸過直播技術,你就會知道“沒有媒體服務器”多么令人驚訝。以往的直播技術大多是基于推流/拉流的邏輯實現(xiàn)的。要想做音視頻直播則必須有一臺流媒體服務器做為中間站做數(shù)據(jù)轉(zhuǎn)發(fā)。但是這種推拉流的方案有兩個問題:
二、WebRTC推流解決云直播服務器中的哪些問題?
1、較高的延遲
2、清晰度難以保證
因為兩端通信都要先過服務器,就好比本來是一條直路,你偏偏“繞了半個圈”,這樣肯定會花更多的時間,因此直播必然會有延遲,即使延遲再低也要 1s 以上。
清晰度高低的本質(zhì)是數(shù)據(jù)量的大小。你想象一下,每天乘地鐵上班,早高峰人越多,進站的那條道就越容易堵,堵你就會走走停停,再加上還繞了路,是不是到公司就更晚了。
把這個例子聯(lián)系到高清晰度的直播:因為數(shù)據(jù)量大就容易發(fā)生網(wǎng)絡擁堵?lián)矶戮蜁е虏シ趴D,同時延遲性也會更高。
但是 WebRTC 就不一樣了,它不需要媒體服務器,兩點一線直連,首先延遲性一定大大縮短。再者因為傳輸路線更短,所以清晰度高的數(shù)據(jù)流也更容易到達,相對來說不易擁堵,因此播放端不容易卡頓,這樣就兼顧了清晰度與延遲性。
當然 WebRTC 也是支持中間媒體服務器的,有些場景下確實少不了服務器轉(zhuǎn)發(fā)。我們互聯(lián)數(shù)據(jù)這篇文章只探討點對點的模式,旨在幫助大家更容易的了解并上手 WebRTC。