为什么直播时要用CDN?
點擊上方“LiveVideoStack”關注我們
翻譯 | Alex
技術審校 | 楊碩
本文來自OTTVerse,作者為Krishna Rao Vijayanagar。
CDN
Easy Tech
#009#
CDN(Content Delivery Network,內容分發(fā)網(wǎng)絡)是由分布在世界各地的服務器組成,它可以根據(jù)用戶的位置來就近分發(fā)緩存的視頻數(shù)據(jù),這對于直播來說非常重要。CDN通過將用戶的訪問,指向距離最近的緩存服務器來提升直播的性能。因此就算在高流量負載的情況下,直播也不會出現(xiàn)緩沖或者中斷。
你在直播時遇到緩沖、延遲、視頻中斷或其他故障嗎?想要確保這些問題不會發(fā)生,使用CDN絕對是一個好方法。CDN已經(jīng)存在有一段時間了,隨著時間的推移,CDN會變得更加流行,對于直播也會更加重要。
在本文中,我們將會討論:你為什么應該在下一場直播中使用CDN,以及它是如何影響終端用戶體驗的。
? 我的直播需要使用CDN嗎?
答案非常簡單:是的!使用CDN將有助于:
服務在地理位置上廣泛分布的觀眾
減少源服務器的負載
降低延遲
減少視頻緩沖
防御DDoS攻擊,從而提升安全性
其他還有很多!
但是,你知道為什么CDN會幫助你提升直播性能嗎?為了理解其中的原因,讓我們來看下CDN是如何工作的。
? 什么是CDN?
正如上文所提到的,CDN(內容分發(fā)網(wǎng)絡)將緩存服務器分布在世界各地,這些服務器中存儲了你的視頻數(shù)據(jù)副本,會根據(jù)觀看用戶的位置將內容就近分發(fā)出去。這說明什么?
如果你在舊金山直播,而你的大部分觀眾在新加坡,那么距離新加坡最近的CDN節(jié)點將緩存你的內容,并將內容分發(fā)給當?shù)氐挠^眾。這些觀眾的請求不必往返美國和新加坡,這樣一來,他們就能體驗到更快的下載速度。觀眾的等待時間縮短,獲得了更好的觀看體驗。
左圖:無CDN ?右圖:有CDN (圖片來自Wikipedia)
CDN通過將用戶的訪問指向距離最近的緩存服務器來提升性能,因此對于那些沒有充足帶寬資源的直播源站來說,視頻不會在高流量負載下緩沖或者中斷。
CDN讓流媒體數(shù)據(jù)直接在用戶訪問的本地節(jié)點快速響應,而不是讓多個請求通過昂貴的長途鏈路在全球范圍內來回傳輸(數(shù)據(jù)中心則需要盡量明確每個觀眾的地理位置)。
在深入了解CDN技術的好處之前,讓我們先來快速了解一下ABR(關于ABR的更多知識,可以閱讀這篇文章:理解ABR及其工作原理)——這是一種通過適應用戶帶寬條件來達到高質量視頻傳輸?shù)囊曨l流方式。ABR的實現(xiàn)方式非常適合基于CDN的傳輸。
下一部分我們將對此進行講解。
?ABR和CDN
使用基于HTTP的視頻傳輸協(xié)議的ABR可以通過CDN進行分發(fā)。在ABR直播中,編碼器的輸出數(shù)據(jù)被切割成小塊,然后視頻播放器依賴索引列表進行播放。索引列表顯示了分片的名稱和播放地址,播放器根據(jù)播放地址來請求視頻文件。
這些視頻分片和索引文件存儲在源服務器中,而源服務器通過CDN網(wǎng)絡分發(fā)數(shù)據(jù)。
當播放器請求視頻分片時,該請求先到達CDN,CDN節(jié)點會判斷本地是否有緩存。如果視頻并不在CDN緩存中,CDN就向直播源服務器轉發(fā)該請求,并獲取到對應的視頻分片文件。CDN將其傳送給請求視頻的客戶端,同時緩存該視頻分片。
通過HTTP請求直播流的視頻分片文件,CDN可以簡單地利用緩存和碼率自適應技術,將直播流分發(fā)到全世界的視頻播放器上。
總之,ABR和CDN在OTT流媒體世界掀起了一場革命,并使內容生產(chǎn)者和消費者受益良多。
那他們都獲得了哪些好處?我們將在下一部分講到。
使用CDN進行直播時有哪些好處?
使用CDN進行直播視頻對你的觀眾來說幫助很大,因為CDN將直接影響他們的觀看體驗,并幫助你獲取或者留存更多的粉絲和觀眾。
接下來,讓我們詳細了解一下這些好處。
CDN減少直播服務器的負載
CDN處在直播服務器(甚至可以是你的筆記本電腦!)和觀看視頻的一大批觀眾之間,它可以用來降低源站服務器的負載。來自觀眾設備上的請求先到達為他們提供服務的CDN,只有被請求的視頻分片不在CDN的緩存中,CDN才會向源服務器請求視頻。如果沒有CDN在中間,你的直播很快就會和筆記本電腦一起down掉!
多像沒有CDN保護被請求轟炸的服務器!
使用CDN進行直播有助于降低延遲(首屏時間)
當觀眾距離你的直播地理位置較遠時,你需要考慮到訪問視頻分片的往返時間。如果有人按了播放鍵,然后要等待20~30秒視頻才能播放,那么他們肯定會放棄這個視頻而去看別的了。
所以,使用CDN就可以通過距離觀眾較近的服務器將第一個視頻分片響應出去。這大大減少了響應請求的時間和下載時間,并降低了延遲和首屏時間。這些對于保障良好的用戶體驗非常重要!
使用CDN進行直播時減少緩沖
為什么視頻播放器會緩沖呢?當播放器向服務器請求視頻分片后,要花一段時間等待視頻分片從服務器到達播放器。當播放器在等待視頻分片到達的時間里,如果緩沖區(qū)被清空(緩沖區(qū)中所有視頻已經(jīng)被播放完),則被判斷為underflow(數(shù)據(jù)不足或欠載),然后播放器開始緩沖。如果直播服務器因為請求過多,不能快速地給每個播放器發(fā)送數(shù)據(jù),就會發(fā)生這種情況。
但是如果你使用CDN的話,這些請求就不會直接訪問到源服務器,而是來到了CDN。這減少了每個視頻分片的響應時間,因而在使用CDN進行直播時,播放器的緩沖區(qū)會得到快速填充。
保護直播基礎設施免受DDoS攻擊
如上文所述,CDN位于觀眾和源服務器(或直播服務器)之間,它發(fā)揮了屏障或第一道防線的作用,使得服務器免遭DDoS攻擊。商業(yè)CDN內置了很多智能防護策略,如果它檢測到惡意流量或者DDoS攻擊,那么就會阻止這些IP地址或者客戶端。
如果沒有好用的CDN,這些惡意請求將席卷你的服務器,直播基礎設施將不堪重負甚至崩掉。
使用CDN進行直播有助于獲得高質量視頻
高質量ABR流媒體的實現(xiàn)關鍵是播放器可以每次獨立地從多碼率配置文件中選擇對應的視頻分片進行播放。而CDN的快速響應特性,可以確保在帶寬足夠的情況下,播放器請求播放高碼率視頻分片能夠及時收到數(shù)據(jù),不會出現(xiàn)播放器緩沖區(qū)不足的情況。如果沒有一個好用的CDN或實時流媒體服務器,那么使用ABR最基本的優(yōu)勢也就不存在了!
? 直播時應該使用Multi-CDN嗎?
到現(xiàn)在為止,你已經(jīng)知道使用CDN直播是一個好主意,因為它會保護你的直播設施免受攻擊,并為觀眾提供出色的觀看體驗。
但這里有一個問題:如果你的CDN提供商出了故障或者崩潰,你該怎么辦?這就麻煩了,觀眾正在通過已發(fā)生故障的CDN觀看你的直播。
為了避免這類問題的發(fā)生,有些公司使用了Multi-CDN架構,即通過多個不同的CDN將視頻傳送給終端用戶。這是一種集合多個CDN,可以支持智能切換策略,從而實現(xiàn)災備冗余的方式。
在Multi-CDN架構中,如果其中一家CDN公司提供的服務出現(xiàn)問題,那么這家CDN對應的流量會無縫地切換到其他CDN提供商。你還可以利用不同的CDN供應商根據(jù)時間或地理區(qū)域的定價,來降低成本。
雖然小型直播活動并不強制要求使用Multi-CDN架構,但如果是奧運會、大型音樂會或者高流量直播活動等,則值得考慮使用Multi-CDN進行直播。
? 總之,你會使用CDN直播嗎?
閱讀本文之后,你會怎么做?你會在直播時使用CDN嗎?大部分在線視頻直播平臺都和CDN公司有合作,這些視頻平臺都獲得了更好的發(fā)展并與CDN提供商的合作也更加緊密。
當你下次選擇直播平臺觀看直播時,請務必向平臺問這個簡單的問題:你用了哪家CDN來向終端用戶分發(fā)內容的?這個簡單的問題可以讓你對視頻平臺如何運行有更多的了解。
我們下次再見,感謝閱讀本篇文章,直播快樂!
致謝
本文已獲得作者Krishna Rao Vijayanagar授權翻譯和發(fā)布,特此感謝。
原文鏈接:https://ottverse.com/cdn-for-live-streaming/
延伸閱讀:
視頻編碼完全指南
Easy Tech:什么是I幀、P幀和B幀?
為什么視頻壓縮如此重要
講師招募
LiveVideoStackCon 2022 音視頻技術大會 上海站,正在面向社會公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內容對技術人有幫助,其他都是次要的。歡迎通過?speaker@livevideostack.com?提交個人資料及議題描述,我們將會在24小時內給予反饋。
喜歡我們的內容就點個“在看”吧!
總結
以上是生活随笔為你收集整理的为什么直播时要用CDN?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【城市沙龙】LiveVideoStack
- 下一篇: 技术实战 —— 快速实现语聊房搭建