假設你的公司需要提供直播的流媒體服務,然而你們最近遇到了流量意外激增或中斷的情況。那麼你和你的團隊可能就必須爭分奪秒地排除損毀修復延遲,畢竟這種中斷可能會給觀眾帶來嚴重問題,也會給你的團隊帶來巨大挑戰。
問題的根源往往在於:你的雲提供商是否有能力有效處理突然激增的流量,並在發生中斷時重新路由流量?如果雲提供商不能快速擴展資源以滿足增加的需求,流媒體平臺可能會在壓力下崩潰,導致停機、內容交付滯後甚至完全崩潰。
通過投資可擴展的基礎設施(如分散式伺服器和基於雲的解決方案),並利用邊緣計算和強大的內容交付網路(CDN),即可確保用戶享受不間斷的直播體驗,保證內容能夠可靠地到達觀眾手中,並確保流媒體服務在競爭日益激烈的市場上保持聲譽。
本文將介紹Akamai的很多客戶為實現可靠流媒體服務而使用的工具。
像Akamai這樣的CDN平臺會提供分散且當地語系化的邊緣伺服器,這些伺服器會戰略性地部署在最終用戶附近。邊緣伺服器作為一種入網點(Points of presence,PoP),是中央資料中心和使用者設備間的中間樞紐。當使用者請求觀看視頻時,內容會從最近的邊緣伺服器發送,而不需要從中央資料中心傳送。因此當流量較大時,這些伺服器可以分攤流量並同時向不同地區的使用者分發內容,並可避免出現延遲。
上圖顯示的是Akamai的分散式網路。這種架構在設計上能夠動態擴展,以應對流量高峰和需求的波動。這種彈性確保了基礎設施即便在最苛刻的條件下也能保持快速回應和彈性。這種更靠近使用者的佈局大幅縮短了內容到達設備所需的時間,從而可以降低延遲,為最終用戶帶來更流暢的流媒體觀賞體驗。
為了向線上觀眾提供高品質體驗,我們需要確保虛擬機器不會為直播流增加額外的延遲。Akamai能夠將線性直播和直播流的端到端延遲降低到10秒內。而這是通過下列幾個方式實現的:
即時直播轉碼:即時直播轉碼系統需要進行擴展,以即時處理峰值視頻負載。在轉碼過程中增加的任何延遲最終都會傳遞給最終使用者,導致觀看體驗不盡如人意。
較小的分段尺寸:Akamai的架構能夠可靠地處理基於HTTP的小分段(最短2秒)流媒體,使播放機能在頻寬下降時快速切換,防止播放機停滯,並有效減少用戶端緩衝區大小。
HTTP分塊編碼傳輸:支援從攝取到邊緣的分塊編碼傳輸,以便在資料可用時立即啟動傳輸,這有助於最大限度地降低延遲。
從邊緣預取:邊緣伺服器將為特定碼率預取下一組片段,並緩存到本地,因為上一個片段已經接收並正在播放。這樣可以隨時提供片段,並降低額外延遲的風險。
讓我們深入看看我們的一位元客戶如何利用Akamai的這一流程來擴展他們的直播流媒體系統。
我們的直播流媒體機制是通過Akamai的Media Services Live(MSL)實現的。MSL旨在利用Akamai分佈在不同地區的廣泛邊緣伺服器網路,向全球受眾高效分發直播的視頻內容。
一起來看看上述參考架構。上圖詳細介紹了使用Akamai處理直播流媒體事件的攝取工作流程和分發工作流程。如果希望改進自己的直播流媒體服務,建議按照上圖這樣設置MSL來處理直播流媒體事件。
首先,我們需要在廣播網站採集即時視頻內容。獲得內容後,需要設置一個編碼器,將原始視頻源轉換為數位格式,如HTTP即時流媒體(HLS)或即時消息傳輸協定(RTMP)。然後使用Akamai的IAS(Ingest Acceleration Source),它可以通過Akamai的客戶門戶下載。IAS能從編碼器獲取資料流程,並通過Akamai專有的UDP傳輸協議進行轉發。然後需要對IAS進行配置,以便從編碼器接收資料流程。
接下來,我們需要在Akamai網路上設置Ingest Acceleration Target(IAT),並確保IAT配置為將資料流程解碼為原始格式。然後將IAT連接到Akamai的入口點軟體,從而進行進一步處理。在編碼和攝取階段,很多人會遇到丟包問題。即時視頻流對丟包非常敏感,丟包會降低視頻流的品質,導致播放過程頻繁緩衝,進而降低觀看體驗。但是使用Akamai平臺進行直播流媒體的客戶不會遇到這種情況,因為Akamai使用了基於UDP的加速技術,能夠確保資料包更可靠、更快速地分發,即便在不穩定的網路條件下也能緩解丟包的影響。這項技術在直播流媒體過程中至關重要的另一個原因是:基於TCP的傳統傳輸方式會因為擁塞控制和糾錯機制而產生高延遲。直播流媒體要求低延遲,以保證觀眾能即時接收內容。Akamai基於UDP的加速可通過最大限度減少這些開銷,提供更高輸送量和更低延遲,這對於及時分發直播內容至關重要。
接下來,我們需要將處理過的視頻流導向Akamai的中間層伺服器。這些伺服器是攝取伺服器和邊緣分發網路之間的仲介。中間層伺服器會進一步分發視頻流,確保視頻流在整個網路的多個點之間進行複製和緩存,以平衡負載並提高冗餘度。當雲提供商處理即時流媒體時,正確處理負載平衡非常重要,否則就會在流程中出現瓶頸。
當使用Akamai的邊緣分發網路時,使用者可以有效避免任何一台伺服器成為瓶頸,確保沒有任何一台伺服器會因請求過多而不堪重負。這一點在高流量事件中尤為重要。
使用者還可以選擇將視頻內容存儲在Akamai的NetStorage系統中。NetStorage可確保內容始終可用,並可在需要時快速檢索。這提供了一種可擴展的安全存儲解決方案,可用作備份或點播等場景。
接下來,我們會將視頻發送到Origin Shield。Origin Shield在攝取伺服器和Akamai CDN之間起到了緩衝作用,有助於應對流量峰值。在高峰期或觀眾人數意外激增時,Origin Shield可處理增加的負載,防止攝取伺服器不堪重負。這樣就可以確保系統能容納大量觀眾,而不會出現性能下降的問題。Origin Shield還能優化緩存效率。通過增加額外的緩存層,Origin Shield可減少請求回源的頻率。這就降低了原始伺服器的負載,節省了頻寬,加快了向最終使用者交付內容的速度。對於最終用戶來說,這意味著可以更快地訪問內容、降低延遲並增強觀看體驗。
接下來,是分發內容的時候了。當我們在全球範圍內向不同地區分發內容時,可能會遇到不同網路條件、監管要求或觀眾偏好。為解決這個問題,我們的客戶使用了Akamai Delivery Accounts。Akamai Delivery Accounts可以理解為分發內容時的不同配置和設置,借此,內容提供者可以針對每個地區配置不同設置,如緩存策略、安全協定和分發優化。每個分發帳戶都可以根據地區、設備或內容類別型的需要進行個性化設置。這一點很重要,因為內容提供者始終需要能在多個分發管道上高效靈活地分發內容。
最後,視頻內容將通過電腦、智慧手機、平板電腦和智慧電視等各種設備傳送給最終使用者。邊緣伺服器會以最小延遲將視頻流傳輸到播放機設備,確保流暢和高品質的觀看體驗。
在構建即時流媒體解決方案時,有很多事情需要考慮。首先,必須考慮延遲和緩衝問題,尤其是在即時傳輸重要的直播活動時。高延遲會導致即時直播延遲,進而讓最終用戶不滿。此外我們還需要考慮丟包問題,丟包會降低視頻品質甚至導致中斷。如果出現丟包,最終用戶將難以忍受不一致、不可靠的資料流程,從而導致糟糕的觀看體驗。最後,還必須能夠進行擴展和負載平衡。我們可能會面臨伺服器超載和崩潰的問題,導致服務中斷,無法有效地處理峰值負載。Akamai優化的分發網路通過基於UDP的加速、攝取網路和可擴展的CDN解決了所有這些問題。
將Akamai用於直播流媒體可確保高效、可擴展和低延遲地分發直播視頻流,為最終使用者提供良好體驗。通過Akamai將處理能力推向網路邊緣,還可進一步優化流媒體服務性能,提高可擴展性。
歡迎關注Akamai,進一步瞭解Akamai針對視頻直播業務量身定制的解決方案。聯繫我們並進一步諮詢相關產品並申請試用。