標籤:

直播連麥技術方案對比及測試方法

2016年陌陌、映客等直播平台陸續上線連麥,如今連麥已經成為主流直播平台標配。聲網於2016年全球率先推出的多人連麥、純語音連麥等多種玩法,半年時間內,就與幾乎所有全球主流直播平台達成深度合作,如陌陌、花椒、觸手、視吧、KK、荔枝FM、鹹蛋家,Meetme,Flurry Live,Livestar,Yalla等等。

從技術架構上來說,目前市場上存在的連麥方案有三種:

三種連麥方案

SD-RTN?

這是聲網的連麥架構,直播連麥的鼻祖。基於UDP,主播端、連麥端、觀眾端都在基於SD-RTN?進行實時通信,大大降低延時。主播端和連麥端也可以轉碼到CDN推流。

RTMP改進方案

基於TCP協議,基本思路是:主播接受連麥嘉賓的視頻,在本地合圖;主播和連麥嘉賓的視頻同時傳到服務端合圖,然後通過CDN推到觀眾端。

WebRTC改進

主播和連麥嘉賓,基於WebRTC進行「視頻會議」,將「視頻會議」在服務端合圖後推到CDN進行分發。

三種不同的架構,在連麥表現上,有獨特指標來區隔

1. 低延時

連麥中,最重要的元素,就是低延時。連麥的本質是視頻通話,而視頻通話最重要的指標就是延時。只有低延時,主播和連麥嘉賓之間,才可以較好的互動、交流。根據ITU-TG.114標準,單向通話延時大於150ms就可受到通話連續性受到影響,最大可容忍時延為400ms。

  • SD-RTN?方案,基於UDP。SD-RTN?包含了編解碼方案和服務端的傳輸方案。聲網的私有專利編解碼是面向互聯網傳輸的編解碼,能夠保證高清晰度、低碼率,並且會根據網路狀況,自動調節碼率。服務架構SD-RTN?是全球部署,全球部署有近100個數據中心。客戶端均通過UDP連接SD-RTN?,通過就近接入策略,讓使用者就近接入質量最好的數據節點;通過智能路由,經過傳輸延遲和質量優化的最優路徑,自動避免網路擁塞,並規避骨幹網路故障的影響。所以,SD-RTN?在跨國傳輸、海量並發、高可用方面有獨特優勢。

  • RTMP改進方案,基於TCP,由於TCP的傳輸機制導致天然的延時不可控。全球最大的CDN服務商,Akamai前幾天就在GMIC會議上表示,要基於WebRTC技術來來升級現有CDN技術。顯然Akamai意識到CDN方案在突破低延時方面的瓶頸。

  • WebRTC改進方案,基於UDP。WebRTC對Chrome瀏覽器有極好的支持,但在Native支持方面先天不足。WebRTC方案最大的不足是,只包含編解碼方案,缺乏服務端解決方案。因此,選擇此方案的同學注意了,一定要重點考察此方案在海量架構、高並發、弱網環境下的表現。

2. 音畫同步

由於音頻和視頻不同採集、傳輸處理,會有很大程度上存在音畫不同步的問題出現,這是一個比較嚴重的問題,觀眾端看到主播的動作,才聽到聲音;或者先聽到聲音,才看到動作,或者說話口型對不上,會感到很奇怪。

3. 卡頓率

卡頓是指兩幀視頻間隔超過一定時長,觀眾的直觀感受就是畫面卡頓。一般情況下,視頻連麥中,比較常用的是把兩幀之間的間隔大於400ms-600ms的看作一次卡頓 。如果卡頓次數過多,是非常影響正常連麥體驗的。

4. 畫質

直播中,主播都希望自己美美的,畫面清晰是基本要求。

在給定的碼率下,清晰度和解析度有關係。如解析度過低,則畫面模糊,細節丟失;如解析度過高,則失真明顯。在解析度夠用的前提下,解析度和清晰度成反比。在解析度一定的情況下,碼率與清晰度成正比關係,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。

聲網的私有專利編解碼能夠在低碼率下保證高清晰度,並且會根據網路狀況,自動調節解析度和碼率,使編碼器運行在最佳解析度下。開發者也可以通過介面,選擇清晰度優先還是流暢度優先。

5. 延展性

直播是一個高度競爭的行業,玩法在不斷的改變。從聲網全球首個推出多人互動連麥,到現在連麥成為直播的標配,只用了不到1年的時間。更多的玩法和功能的出現,是市場在推動技術進步,同時也是技術進步在推動市場發展。聲網現在在連麥的玩法上又拓展了一個新功能,跨直播間連麥。不同房間的主播可以進行連麥,穿透了之前一個房間就是一個頻道的屏障。

要實現豐富的延展性,必須從底層架構設計上就有高度靈活性,類似聲網的創新架構SD-RTN?。RTMP改進方案是基於存在了十多年的CDN方案進行改進,很難有大的突破。WebRTC在Native方面和服務端架構方面的短板,也造成了改進成本非常高。

基於以上幾個指標,接下來講如何測試連麥的效果。

如何測試連麥的效果

連麥的效果指的是:延時如何,卡頓頻率如何,畫質是否清晰。不能接受的是:卡屏、綠屏、花屏、斷線。

設置視頻屬性

主播A設置:選擇640x360,15fps,800kbps,其他設置選擇默認

輔播B設置:選擇320x240,15fps,300kbps,其他設置選擇默認

設置丟包率和帶寬

在用戶的實際使用場景中,常常會有網路卡頓的情形,背後的原因可能是網路的丟包率高和帶寬不足。通常,測試連麥需要用到網損儀來設定不同的丟包率模擬真實網路環境。但是,如果沒有專業的網損環境,iOS自帶網損模擬器也可以做簡單的丟包和限帶寬測試。設置方法見《WebRTC音視頻方案自測教程》

測試流程

1台iPhone6作為主播,1台iPhone6作為輔播,主播的前置攝像頭盡量接近以獲取相同的攝像頭輸入。如果同時測試兩種連麥方案,那麼就是2台iPhone6作為主播,2台iPhone6作為輔播。

4台iPhone6的屏幕輸出通過Blackmagic Multiview拼接為一路4k信號,送入4k顯示器顯示且錄製。錄製出來的成品,就像下面這個視頻,這是聲網和行業其它連麥方案的對比。通過觀看錄像,可以直觀的觀察到首幀出圖時間、成像質量、卡頓、延時。

直播連麥對比測試—在線播放—優酷網,視頻高清在線觀看 http://v.youku.com/v_show/id_XMjc1Mzg5MTE0OA==.html?spm=a2hzp.8253869.0.0#paction

左側是聲網,右側是行業其它方案。第一排是主播端,第二排是連麥端。通過秒錶可以直觀的看到延時。通過地球儀的轉動,可以看到卡頓情況。整體觀看,可以看出清晰度的差異。

測試結果

這是一個報告模板,其中,卡頓指的是:視頻兩幀間隔>600ms,次數是按5分鐘總時長來統計。按照上述步驟,你自己也可以出一份這樣的報告。

【本文作者】

單輝 聲網Agora.io 高級開發工程師

推薦閱讀:

在線抓娃娃的基本技術架構

TAG:互動直播 |