播延時,對于任何一個接觸網絡直播的人而言都不陌生,很多客戶第一次做企業直播的時候就非常關心:為什么會有延時,怎么才能0延時呢?通過閱讀本篇文章,也許你就會知道答案了。
網絡直播為什么會有延時?
在《玩轉直播設備三大件:視頻采集、編碼器、直播平臺【自己開直播02期】》中,我們提到直播流程:直播內容采集→處理→編碼→封包→推流→傳輸→轉碼→分發→解碼→播放,每個階段對直播的延時都會有一定的影響。由于音視頻的傳輸路徑一樣,我們可以通過一張圖來說明延時的產生:
(以手機直播為例)
在音視頻傳輸過程中,在不同階段都會產生延時。總體可以分為三類:
通過圖表,我們可以發現延時是因多個階段的數據處理、傳輸而產生的。其中,涉及的影響因素主要有:推流網絡環境(視頻錄制),服務器上傳、下發帶寬,拉流網絡環境(播放)等。
所以,你要了解一個真相:所謂“0延時”,目前的技術是不太可能實現的,我們現在能做的是盡可能縮短直播時的延時。
我們不能準確保證延時多少秒,在任何實驗環境下都可以達到很低的延時,但是到實際環境中,要考慮邊緣節點的部署、主干網絡擁塞、弱網環境、設備性能、系統性能等問題,實際延時會更大。
一般編碼器直播,PC端延時2~3S,移動端延時15~25S。移動端的延時增加,主要是由hls的轉碼引起。手機直播,通常比編碼器直播增加2S左右延時,桌面直播工具推流,通常比編碼器直播增加5S左右延時。如果關鍵幀間隔是3秒,手機上可以保持在20s的延時。
微視播怎樣保證低延時?
既然大家對延時如此關注,那么作為提供直播技術的微視播的角度來說,我們是如何保證客戶直播的低延時呢?
一:微視播支持RTMP協議推流
傳輸協議的選擇十分重要。傳輸協議一定程度上就決定了延時的范圍。從低延時直播的角度來看,RTMP協議是作為直播協議輸出最佳選擇。RTMP是基于TCP的標準協議,CDN網絡普遍支持,也能做到相對較低的延時。
RTMP支持播放的渠道很完善,能做到不同觀看渠道長時間穩定播放不斷流,這對于企業直播很重要。對推流有興趣的朋友可以閱讀《不懂推流?說說直播背后不得不知的“流”【自己開直播01期】》。
▲微視播直播“流媒體技術”原理圖
二:CDN內容分發網絡
CDN是通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡。CDN是一個策略性部署的整體系統,能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。
▲微視播直播國內節點資源分布概況圖
CDN加速服務的質量受節點的多少影響,這個很容易理解,節點多,資源的配置和調度上選擇的空間就比較大。簡單說:CDN的作用就是幫助數據選擇用時最短的傳輸路線。
三:完善的網絡部署
要實現低延時,網絡基建必須要足夠好。我們可以這么比喻:道路網絡不好,怎么選都是爛泥土路,選了爛泥土路,如何能夠跑的快呢?網絡是非常重要的。
微視播會給客戶提供網絡部署指導建議,如果是單場直播需求的客戶,我們的執行人員會到現場針對不同實際情況進行網絡部署,確保現場網絡的良好。
▲微視播一般網絡解決方案
四:專業的運維服務
為了保障我們的服務器正常穩定運作,微視播有專業的運維團隊,隨時對客戶各種突發情況快速響應處理,保證直播活動的順利進行。
我們也希望實現“0延時”,但理想豐滿,現實骨感。每一個完美的直播背后都需要多設備、多流程配合完成的,正所謂“蝴蝶效應”,任何一個小環節都會對直播延時產生影響,那么就肯定有它觸及天花板的時候。微視播將不斷完善開發直播系統,保證直播的低延時、穩定性,同時視頻播放高清流暢。