直播火了,連麥直播也火了,那麼說明是直播,連麥直播是什麼。
手機直播連麥功能的特點,我們按下面三部分來聊一聊手機直播和直播連麥:
- 手機直播連麥功能的特點
- 人物畫像和設計思維
- 一個有趣的連麥功能交互建議
手機直播連麥功能的特點
- 連麥功能的權限
- 連麥人數和顯示位置
- 連麥交互流程
而映客的連麥功能是有權限設定的,並且門檻比較高,要求百萬映票、等級80以上以及紫V認證的用戶才能進行連線互動。這從某個方便來說對於質量上有了提高。
連麥人數和顯示位置
連麥交互流程
1、主播客戶端,將本地採集的視頻推送到CDN;
2、CDN對視頻流進行緩存以及轉發;
3、觀衆客戶端,拉取CDN中緩存視頻流進行播放;
這其中最核心的就是CDN了,那神馬事CDN呢?
CDN技術原理
CDN的全稱爲Content Delivery Network,即內容分發網絡,是一個策略性部署的整體系統,主要用來解決由於網絡帶寬小、用戶訪問量大、網點分佈不均勻等導致用戶訪問網站速度慢的問題。這中間就有了很多的CDN節點,簡單一點理解就相當於我們開始學習計算機選擇網絡。具體實現是通過在現有的網絡中,增加一層新的網絡架構,將網站的內容發佈到離用戶最近的網絡節點上,這樣用戶可以就近獲取所需的內容,解決之前網絡擁塞、訪問延遲高的問題,提高用戶體驗。
上圖中,不同的流媒體走的節點和協議做了區分,網絡擁塞減少,訪問延遲降低,帶寬得到良好的控制等等。 CDN直播中常用的流媒體協議包括RTMP,HLS,HTTP FLV等。
RTMP(Real Time Messaging Protocol)是基於TCP的,由Adobe公司爲Flash播放器和服務器之間音頻、視頻傳輸開發的開放協議。 HLS(HTTP Live Streaming)是基於HTTP的,是Apple公司開放的音視頻傳輸協議。 HTTP FLV則是將RTMP封裝在HTTP協議之上的,可以更好的穿透防火牆等。
CDN的常用架構
源站:是指發佈內容的原始站點。添加、刪除和更改網站的文件,都是在源站上進行的;另外緩存服務器所抓取的對象也全部來自於源站。對於直播來說,源站爲主播客戶端。
緩存服務器:是直接提供給用戶訪問的站點資源,由一臺或數臺服務器組成;當用戶發起訪問時,他的訪問請求被智能DNS定位到離他較近的緩存服務器。如果用戶所請求的內容剛好在緩存裏面,則直接把內容返還給用戶;如果訪問所需的內容沒有被緩存,則緩存服務器向鄰近的緩存服務器或直接向源站抓取內容,然後再返還給用戶。
智能DNS:是整個CDN技術的核心,它主要根據用戶的來源,以及當前緩存服務器的負載情況等,將其訪問請求指向離用戶比較近且負載較小的緩存服務器。通過智能DNS解析,讓用戶訪問同服務商下、負載較小的服務器,可以消除網絡訪問慢的問題,達到加速作用。
客戶端:即發起訪問的普通用戶。對於直播來說,就是觀衆客戶端,例如手機客戶端,PC客戶端。
用圖表示如下:
整個流程描述如下:
主播開始進行直播,向智能DNS發送解析請求; 智能DNS返回最優CDN節點IP地址; 主播端採集音視頻數據,發送給CDN節點,CDN節點進行緩存等處理; 觀衆端要觀看此主播的視頻,向智能DNS發送解析請求; 智能DNS返回最優CDN節點IP地址; 觀衆端向CDN節點請求音視頻數據; CDN節點同步其他節點的音視頻數據; CDN節點將音視頻數據發送給觀衆端;
採用CDN的缺點
播放延時(網絡延時)
網絡抖動
網絡丟包
連麥
第一種方式:文字,這種比較常見,實現也比較簡單,這裏不再進行分析;這種比較簡單
第二種方式:連麥,這樣主播可以面對面與觀衆進行交互,增加了互動性;這種最網絡的要求更高。
不過P2P在某些網絡下無法穿透,有些觀衆根本無法與主播端進行交互; 主播端需要上傳兩路視頻:一路P2P與連麥者進行交互,一路使用RTMP推到CDN。還要下載一路視頻:連麥者P2P發送過來的交互數據。所以主播端要求帶寬需要較高,網絡較差時無法進行主播 主播端要進行多路視頻的編碼、解碼,要求主播端設備配置比較高,較差的設備也無法進行主播; 只能支持一個連麥者,不能支持多個連麥者; 由於主播端和連麥者經過CDN合併成一路,因此,不能實現主播端和連麥者視頻大小窗口切換。
還有一種方式就是通過CDn中轉:
是主播和連麥者都將視頻推送到CDN中,然後CDN內部對這幾路視頻進行合圖,再將其發送給觀衆端。
主播和連麥者各路視頻都使用RTMP推送到CDN,可以保證延時較小; 由於CDN進行視頻合圖和發送,所以主播不需要很高的帶寬; 由於CDN進行視頻合圖,所以主播的設備不需要配置非常高; 沒有聲音干擾問題; 可以支持多個連麥者連麥;
不過,CDN需要進行視頻的合圖,需要額外開發工作,並且邏輯比較複雜; CDN需要進行視頻的合圖,需要消耗較高服務器資源; CDN合圖後的佈局難控制; 所以對CDN要求奇高;
在實際的網絡直播中,我們常常會加入直播質量的監控,這裏做了完備的數據上報及分析系統,基本上涵蓋了各種關鍵性指標,既能反應直播的各種性能方便優化,同時也能輔助定位各種問題;這個是播放端的整體統計數據,下行帶寬、卡頓率、緩衝大小、CPU佔用率,這是一個宏觀統計數據,反應了當前直播觀看端的一個質量。有了直播質量監控,更精細一些我們可以做一些運營分析。
基於上面的問題,有人提出了基於SD-RTN的解決方案,有興趣的可以去搜一下。
客戶端均通過UDP連接SD-RTN(Agora Global Network),通過SD-RTN的就近接入策略,讓使用者就近接入質量最好的數據節點,通過Agora Global Network的軟件定義優化路由,經過傳輸延遲和質量優化的最優路徑,自動避免網絡擁塞,並規避骨幹網絡故障的影響。
採用SD-RTN做直播有如下特點:
1、可以支持更多的主播交互,目前支持7人視頻交互,100人語音交互。
2、當有觀衆連麥時,其他觀衆端收到的多路視頻,觀衆端可以動態選擇佈局;
3、聲網Agora.io會將直播視頻推送到CDN,其他觀衆(網頁端等)可以直接觀看;
4、當有觀衆連麥時,聲網Agora.io會將視頻合圖後推送到CDN,其他觀衆(網頁端等)可以觀看到連麥者與主播的互動;
5、在經過RTMP推流前的觀衆端,可以進行大小流切換,自主選擇視頻大小窗口的切換。