这么多连麦方案,到底哪种适合你?
016年陌陌、映客等直播平臺陸續(xù)上線連麥,如今連麥已經(jīng)成為主流直播平臺標配。聲網(wǎng)于2016年全球率先推出的多人連麥、純語音連麥等多種玩法,半年時間內(nèi),就與幾乎所有全球主流直播平臺達成深度合作,如陌陌、花椒、觸手、視吧、KK、荔枝FM、咸蛋家,Meetme,Flurry Live,Livestar,Yalla等等。
從技術架構(gòu)上來說,目前市場上存在的連麥方案有三種:
三種連麥方案
SD-RTN?
這是聲網(wǎng)的連麥架構(gòu),直播連麥的鼻祖?;赨DP,主播端、連麥端、觀眾端都在基于SD-RTN?進行實時通信,大大降低延時。主播端和連麥端也可以轉(zhuǎn)碼到CDN推流。
RTMP改進方案
基于TCP協(xié)議,基本思路是:主播接受連麥嘉賓的視頻,在本地合圖;主播和連麥嘉賓的視頻同時傳到服務端合圖,然后通過CDN推到觀眾端。
WebRTC改進
主播和連麥嘉賓,基于WebRTC進行“視頻會議”,將“視頻會議”在服務端合圖后推到CDN進行分發(fā)。
三種不同的架構(gòu),在連麥表現(xiàn)上,有獨特指標來區(qū)隔
1. 低延時
連麥中,最重要的元素,就是低延時。連麥的本質(zhì)是視頻通話,而視頻通話最重要的指標就是延時。只有低延時,主播和連麥嘉賓之間,才可以較好的互動、交流。根據(jù)ITU-TG.114標準,單向通話延時大于150ms就可受到通話連續(xù)性受到影響,最大可容忍時延為400ms。
-
SD-RTN?方案,基于UDP。SD-RTN?包含了編解碼方案和服務端的傳輸方案。聲網(wǎng)的私有專利編解碼是面向互聯(lián)網(wǎng)傳輸?shù)木幗獯a,能夠保證高清晰度、低碼率,并且會根據(jù)網(wǎng)絡狀況,自動調(diào)節(jié)碼率。服務架構(gòu)SD-RTN?是全球部署,全球部署有近100個數(shù)據(jù)中心??蛻舳司ㄟ^UDP連接SD-RTN?,通過就近接入策略,讓使用者就近接入質(zhì)量最好的數(shù)據(jù)節(jié)點;通過智能路由,經(jīng)過傳輸延遲和質(zhì)量優(yōu)化的最優(yōu)路徑,自動避免網(wǎng)絡擁塞,并規(guī)避骨干網(wǎng)絡故障的影響。所以,SD-RTN?在跨國傳輸、海量并發(fā)、高可用方面有獨特優(yōu)勢。
-
RTMP改進方案,基于TCP,由于TCP的傳輸機制導致天然的延時不可控。全球最大的CDN服務商,Akamai前幾天就在GMIC會議上表示,要基于WebRTC技術來來升級現(xiàn)有CDN技術。顯然Akamai意識到CDN方案在突破低延時方面的瓶頸。
-
WebRTC改進方案,基于UDP。WebRTC對Chrome瀏覽器有極好的支持,但在Native支持方面先天不足。WebRTC方案最大的不足是,只包含編解碼方案,缺乏服務端解決方案。因此,選擇此方案的同學注意了,一定要重點考察此方案在海量架構(gòu)、高并發(fā)、弱網(wǎng)環(huán)境下的表現(xiàn)。
2. 音畫同步
由于音頻和視頻不同采集、傳輸處理,會有很大程度上存在音畫不同步的問題出現(xiàn),這是一個比較嚴重的問題,觀眾端看到主播的動作,才聽到聲音;或者先聽到聲音,才看到動作,或者說話口型對不上,會感到很奇怪。
3. 卡頓率
卡頓是指兩幀視頻間隔超過一定時長,觀眾的直觀感受就是畫面卡頓。一般情況下,視頻連麥中,比較常用的是把兩幀之間的間隔大于400ms-600ms的看作一次卡頓 。如果卡頓次數(shù)過多,是非常影響正常連麥體驗的。
4. 畫質(zhì)
直播中,主播都希望自己美美的,畫面清晰是基本要求。
在給定的碼率下,清晰度和分辨率有關系。如分辨率過低,則畫面模糊,細節(jié)丟失;如分辨率過高,則失真明顯。在分辨率夠用的前提下,分辨率和清晰度成反比。在分辨率一定的情況下,碼率與清晰度成正比關系,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。
聲網(wǎng)的私有專利編解碼能夠在低碼率下保證高清晰度,并且會根據(jù)網(wǎng)絡狀況,自動調(diào)節(jié)分辨率和碼率,使編碼器運行在最佳分辨率下。開發(fā)者也可以通過接口,選擇清晰度優(yōu)先還是流暢度優(yōu)先。
5. 延展性
直播是一個高度競爭的行業(yè),玩法在不斷的改變。從聲網(wǎng)全球首個推出多人互動連麥,到現(xiàn)在連麥成為直播的標配,只用了不到1年的時間。更多的玩法和功能的出現(xiàn),是市場在推動技術進步,同時也是技術進步在推動市場發(fā)展。聲網(wǎng)現(xiàn)在在連麥的玩法上又拓展了一個新功能,跨直播間連麥。不同房間的主播可以進行連麥,穿透了之前一個房間就是一個頻道的屏障。
要實現(xiàn)豐富的延展性,必須從底層架構(gòu)設計上就有高度靈活性,類似聲網(wǎng)的創(chuàng)新架構(gòu)SD-RTN?。RTMP改進方案是基于存在了十多年的CDN方案進行改進,很難有大的突破。WebRTC在Native方面和服務端架構(gòu)方面的短板,也造成了改進成本非常高。
基于以上幾個指標,接下來講如何測試連麥的效果。
如何測試連麥的效果
連麥的效果指的是:延時如何,卡頓頻率如何,畫質(zhì)是否清晰。不能接受的是:卡屏、綠屏、花屏、斷線。
設置視頻屬性
主播A設置:選擇640x360,15fps,800kbps,其他設置選擇默認
輔播B設置:選擇320x240,15fps,300kbps,其他設置選擇默認
設置丟包率和帶寬
在用戶的實際使用場景中,常常會有網(wǎng)絡卡頓的情形,背后的原因可能是網(wǎng)絡的丟包率高和帶寬不足。通常,測試連麥需要用到網(wǎng)損儀來設定不同的丟包率模擬真實網(wǎng)絡環(huán)境。但是,如果沒有專業(yè)的網(wǎng)損環(huán)境,iOS自帶網(wǎng)損模擬器也可以做簡單的丟包和限帶寬測試。設置方法見《WebRTC音視頻方案自測教程》
測試流程
1臺iPhone6作為主播,1臺iPhone6作為輔播,主播的前置攝像頭盡量接近以獲取相同的攝像頭輸入。如果同時測試兩種連麥方案,那么就是2臺iPhone6作為主播,2臺iPhone6作為輔播。
4臺iPhone6的屏幕輸出通過Blackmagic Multiview拼接為一路4k信號,送入4k顯示器顯示且錄制。錄制出來的成品,就像下面這個視頻,這是聲網(wǎng)和行業(yè)其它連麥方案的對比。通過觀看錄像,可以直觀的觀察到首幀出圖時間、成像質(zhì)量、卡頓、延時。
連麥質(zhì)量對比視頻?
左側(cè)是聲網(wǎng),右側(cè)是行業(yè)其它方案。第一排是主播端,第二排是連麥端。通過秒表可以直觀的看到延時。通過地球儀的轉(zhuǎn)動,可以看到卡頓情況。整體觀看,可以看出清晰度的差異。
測試結(jié)果:
這是一個報告模板,其中,卡頓指的是:視頻兩幀間隔>600ms,次數(shù)是按5分鐘總時長來統(tǒng)計。按照上述步驟,你自己也可以出一份這樣的報告。
【本文作者】
單輝 聲網(wǎng)Agora.io 高級開發(fā)工程師
總結(jié)
以上是生活随笔為你收集整理的这么多连麦方案,到底哪种适合你?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stun server、turn ser
- 下一篇: 移动直播连麦实现思路:整体篇