具有CMCD的多CDN高級架構
什麼是CMCD?
Common Media Client Data (CMCD)是指2020年發布的開放規範5004。 什麼是開放規範? 開放式規範是指一組公開提供給任何人的書面要求和標準。 這裡的大標題是CMCD開放規範定義了媒體播放器(稱為客戶端)如何生成影片流數據,並在每個媒體請求中與CDN共享這些數據。 在定義此規範之前,就客戶端數據的發送,接收和處理方式而言,這是一種狂野的西部。 CMCD的核心只是一組包含有價值數據的密鑰。 使用5004,我總結了這些關鍵要素,並為您提供了更多見解,以創建有用的備忘表。說明 | 密鑰 | 定義 | *使用 |
---|---|---|---|
編碼比特率 | br | 請求的音訊或影片對象的編碼比特率。 | 顯示交付的實際比特率,CDN可以使用它推斷對象大小。 |
緩衝區長度 | BL | 請求時播放器緩衝區長度。 | CDN可用來推斷播放的健全狀況。 |
緩衝區不足 | BS | 緩衝區不足事件。 指示播放時重新緩衝/停止。 | 重新緩衝百分比的計算方式是:在給定時間段內至少有一個重新緩衝事件的會話總數與會話總數。 |
內容ID | CID | 標識當前內容的唯一字元串。 | 可用於跟蹤有問題的內容,但玩家很少使用。 |
對象持續時間 | D | 所請求對象的回放持續時間(以毫秒為單位)。 |
匯總時,可將其用作觀察時數的估計值。 可用於確定內容是否在廣告中斷中以及觀看的影片類型。 可用於確定塊大小。 |
最後期限 | DL | 從請求時間到該段/對象的第一個樣本的截止時間需要可用,以避免產生緩衝區欠載或任何其他回放問題 | |
測量吞吐量 | 中期計劃 | 客戶端和伺服器之間的吞吐量(由客戶端測量)。 | CDN到播放器之間的估計吞吐量帶寬。 用於比較CDN和外部指標。 |
下一個對象請求 | NOR | 要請求的下一個對象的相對路徑。 | 用於預取。 |
下一個範圍請求 | NRR | 如果下一個請求是部分對象請求,則此字元串表示要請求的位元組範圍。 ‘未設定‘nor’(或)欄位,則假定對象與當前請求的對象相匹配。 | 用於預取。 |
對象類型 | OT |
所請求的當前對象的介質類型: M =文本文件,例如清單或播放列表 A =僅音訊 V =僅影片 AV =多路音訊和影片 I =初始化段 C =標題或副標題 TT = ISOBMFF定時文字曲目 K =加密密鑰,許可證或證書。 =其他 如果所請求的對象類型未知,則不得使用此鍵。 |
用於故障排除。 可用於確定編碼和DRM問題。 DRM提供商對當前使用/支援的版本/瀏攬器的可見性有限,因此“k”非常有用。
“C”可用於提醒潛在的合規性問題。 |
播放速率 | 公關 | 實時為1,雙速為2,不播放為0。 僅當不等於1時才發送。 | 可用於推斷播放器是否正在調整播放速率以彌補其他問題(例如源站或CDN未能足夠快地交付段)。 |
請求的最大吞吐量 | RTP |
請求客戶端認為足夠交付資產的最大吞吐量。
***吞吐量是指傳輸的數據量。 |
將告訴您播放器和CDN性能。 這可用於更有效的數據管理,並實際上節省資源。
這可以通過防止超額交付而使客戶受益,也可以通過公平份額交付實現社群利益。 其概念是每個客戶端都能獲得卓越性能所需的吞吐量,但不會獲得更多的吞吐量。 |
流格式 | SF |
D = MPEG破折號 H = HTTP直播流(HLS) S =流暢串流 O =其他 |
幫助確定支援DASH/HLS的播放器的流相關問題。 可以根據流媒體格式比較具有多格式支援的播放器的性能。 |
會話ID | SID | 標識當前播放會話的GUID。 回放會話通常將屬於單個媒體資產的段綁定在一起。 最大長度為64個字元。 建議遵循UUID規範。 |
始終建議將此密鑰包括在CMCD日誌記錄中。 它可能是最有用的鍵,因爲它用於將日誌放在一起。
可以幫助排除暫存問題。 具有兩個會話ID的相同內容ID強烈表示存在暫存問題。 |
流類型 | 聖 |
V =所有分段都可用–例如VOD L =隨時間的推移而可用的區段–例如,即時 |
用於故障排除的寶貴密鑰。 |
啟動 | 週日 | 指示內容啟動。 |
不再需要信標。 了解內容啟動的CDN有助於優化後續回放。 此標誌也會在緩衝標誌(BS)之後發送。 |
頂級比特率 | TB | 清單或播放列表中允許客戶端播放的最高比特率再現。 |
用於確定比特率或比特率加載問題。 顯示播放器當時可以播放的最高比特率。 可用於比較可用比特率。 |
CMCD版本 | 五 | 使用的CMCD規範版本。 | 此鍵允許版本控制,並表示將來會發布CMCD版本。 |
自定義密鑰 |
自定義密鑰需要“cmcd-”前綴。 虛構示例:cmcd-edgio |
允許發送唯一的CMCD密鑰,從而擴展CMCD以完全自定義。 |
目前,Edgio是唯一公開聲明支持所有CMCD密鑰的CDN。 定義的密鑰可以三種傳送模式從播放器傳輸到CDN。
- 每個請求中的自定義HTTP頭。 這些鍵可以與四個標題名稱一起使用。
- cmcd-request:其值隨每個請求而變化的鍵。
- CMCD對象:其值隨請求的對象而變化的鍵。
- CMCD-Status:其值不會隨每個請求或對象而變化的鍵。
- CMCD會話:其值在會話生命週期內應為不變的鍵。
- HTTP查詢參數。
- 獨立於每個HTTP請求的JSON對象。
緩衝區不足和通過三種傳送模式啓動CMCD格式。
誰應該使用CMCD?
任何大小的流媒體服務都應儘快使用CMCD。 然而,自《公約》發布以來,《公約》的知識和實施一直有限。 我們所看到的趨勢表明,採用和支援的趨勢越來越多。 儘管如此,我們很樂意與您討論您的使用案例以及CMCD如何提昇您的業務。為什麼需要CMCD?
CMCD旨在確保用戶每次點擊播放時都能獲得最佳的流媒體體驗。 作為Edgio的解決方案工程師,我的工作是審查內容提供商的技術架構,以確保我們的CDN平穩高效地工作,從而獲得最佳的用戶體驗。 任何技術體系結構的一個關鍵組件是從日誌,指標和跟蹤(也稱為可觀察性的三大支柱)中收集的數據,以實現這一目標。 以下是CMCD值得併入的幾個原因,如果您還沒有售出它。標準化
數據由第三方工具和內部專有工具的混合為每個體系結構收集和分析。 困難在於收集到的每個數據都遵循自己的格式。 非標準數據可能會產生副作用,例如不一致,質量降低,可擴展性有限以及維護工作量增加。 我向您提出挑戰,讓您找到一位以前從未遇到過某些或所有這些問題的工程師。 為了解決這一問題,CMCD將客戶端數據(播放器)標準化為伺服器端數據(CDN),以確保互操作性。 這一點非常重要,因為它使CDN能夠最接近客戶端真實用戶測量(RUM)數據。增強的自定義功能
自定義CMCD密鑰無限擴展其實用程序。使用案例:狀態代碼自定義
以下是Edgio使用的真實自定義狀態代碼。 “000 -當源站未發送響應時返回特定於Edgio的狀態代碼,因此沒有狀態代碼可記錄(例如,當源站發送響應前客戶端斷開連接)。” 此定義來自Configuring Log Delivery Service文檔的Log File Fields部分。
Edgio可以創建000自定義密鑰。
簡化的工作流程
近年來,技術公司一直在削減成本,整合工具和降低整體複雜性。 CMCD生成的免費數據可以取代內部和外部日誌分析服務。 結果是簡化和優化的工作流程。使用案例:Player工作流程
舊進程
如今,流媒體公司已廣泛使用第三方分析。 但是,這些工具需要一個廣泛而持續的集成過程,如下所示。
-
- 采購
- 每個第三方分析供應商都有自己的軟體開發套件(SDK),用於與每個播放器進行信標集成。 Android的ExoPlayer (DASH),Apple的播放器(HLS),Microsoft的PlayReady (Xbox/Windows),基於Web的(網站,電視)等都是需要單獨SDK的播放器。
- 測試和驗證。 元數據必須符合供應商的準則。
值得注意的是,這一整個過程很容易需要一年或更長時間。
新流程
啟用非常簡單。 Edgio可以通過我們的日誌交付服務以接近實時的方式捕獲您的CMCD數據。 這意味著不需要播放器信標或第三方集成來解鎖下一代數據分析。 對於我們擁有大量用戶的客戶來說,這意味著每年可節省數百萬美元。
安全性
資訊安全性可能不是您在串流時想到的第一件事,但它仍然是重要的元件。- CMCD無法存取登入資料或包含PII (個人識別資訊),因為它將使用者體驗與資訊區分開來。 它僅包含一般性能資訊。
- CMCD數據不依賴中間服務。 這限制了與第三方共享數據,將數據保留在內部。
可觀察性
CDN現在可以查看有關客戶如何體驗其服務的精確會話數據。 CDN和流媒體提供商可以使用此共享可見性:- 設定更準確的監視和警報。
- 在重大事件上給予更多的提前時間。
- 更有效地診斷和解決問題。
使用案例:中斷期處理
舊進程
這是流媒體公司使用單獨的播放器和CDN日誌解決中斷問題的典型流程。
-
- 發生中斷。 遺憾的是,通常不提供人工通信或第三方分析的乾預。
- 內部警報是由性能指示器下降,錯誤代碼,儀表板等觸發的
- 警報在內部進行分類並根據待命人員,主題專家和部門委派等因素上報。
- 如果這是以前遇到並記錄的問題,則使用執行手冊。
- 決定是否應向外部合作夥伴(如CDN)上報問題。
- 已達到解析度。
- 執行內部根本原因分析(RCA)並將其傳達給客戶。
由於上報路徑較長,因此中斷需要很長時間才能解決。
新流程
這是如何使用CMCD解決中斷問題的流程。
-
- 發生中斷。 存取原生CMCD資料可讓每個人都有完整的能見度。 我們的託管服務團隊會主動聯繫您以進行緩解。
- 通過Edgio實時協作解決停機問題,同時查看與工程師相同的數據。
- Edgio可以協助RCA,並與合作夥伴一起制定策略,以防止未來的中斷。
停機問題解決速度更快,所需的內部工程資源也更少。
性能提昇
CDN的主要目的是提高通過網際網路提供的內容的性能。預取
我們看到客戶最常要求CMCD解鎖通用預取支援。 預取是在需要內容數據以加速內容交付之前將其上載到暫存。
下一代智能負載平衡
我們的CDN會自動從全球專用網路內的最佳預拍點(POP)交付內容。 我們為您處理內部網路負載平衡,但當使用多個CDN時,外部負載平衡會變得更復雜,更難讓內容提供商管理。 問題是流媒體公司如何智能地利用堆棧中的CDN。 每家公司都嘗試以獨特的方式解決此問題,但對於大多數公司來說,它仍按播放器委派的百分比或可用性手動分割。 CMCD感知負載平衡是答案。 在統一日誌中使用CDN和播放器數據,可以更好地了解每個CDN的性能,這是智能負載平衡所必需的。 這是一個剛開始的階段,但也是最有希望的特點。 流媒體提供商尚未在其生產環境中使用此方法。 我提到這一點是因為這意味著它的應用是理論性的。 我們看到CMCD隨著AI/ML等其他新興流技術的發展和發展而不斷發展。
使用案例:智能地理負載平衡
流媒體提供商擁有拉丁美洲年度最大的直播體育賽事的獨家流媒體權利。 爲了準備事件,可以使用CMCD感知的負載平衡。 在遊戲期間,資料會即時使用,自動將流量分散到CDN堆疊之外的每個地區,地區,和/或POP效能最佳的CDN。 這可避免在堆棧中的CDN性能不佳,容量不足或遇到技術問題時需要手動故障轉移。 在這種情況下,我們的CDN將處理最大的流量份額,因為Edgio通常優於拉丁美洲的其他CDN,因為我們優先在新興市場投資。
自適應流量優化
實時使用CMCD可用於自適應流量優化,例如在流媒體查看器之間穩定播放比特率。
如何啟用CMCD?
在繼續之前,您應該知道有兩個技術要求:播放器和CDN都需要支持CMCD使用。 目前大多數播放器和CDN都支援CMCD。播放器 | 標頭 | 查詢 | JSON |
---|---|---|---|
THEOplayer | |||
Bitmovin | |||
Shaka球員 | |||
Android ExoPlayer | |||
hls.js | |||
dash.js |
*應該注意的是,玩家支持取決於公共文檔的可用性,此列表並不詳盡。 請隨時聯繫CMCD播放器支援,我們可以更新以包括該資訊。
? =撰寫本文時並非公開資訊。 請隨時聯繫CMCD CDN支援,我們可以更新以包括該資訊。
還有其他注意事項:
- 為了安全起見,強烈建議HTTPS over HTTP用於Web上的所有CMCD數據傳輸。
- CORS和內容保護使CDN配置更加復雜。 需要配置CORS以允許從播放器向CDN發送標頭CMCD-Request,CMCD-Object,CMCD-Status,CMCD-Session。
啟用Edgio CDN
有關說明,請參閱CMCD報告文檔中標題爲啓用CMCD日誌的部分。 如果您還不是客戶,請聯繫我們進行性能試用,與我們的解決方案工程師團隊合作,並查看我們的CDN的實際應用。
為Uplynk啟用
Edgio的Uplynk是一款完善的流媒體平臺,具有面向廣播公司和OTT提供商的集成CDN。 將CMCD與Uplynk相結合將增強其端到端可見性,這是其他流媒體平臺所沒有的。 如果您還不是客戶,請與我們聯繫以獲取Uplynk演示,並直接與我們的託管服務聯繫以啓用。 您可以在Edgio和Bitmovin Join Forces to Optimize User Experience中閱讀有關Uplynk未來的更多資訊。
如何查看CMCD?
CMCD數據位於您的CDN日誌中,可以對其進行檢查。 數據可提取到日誌存儲庫,儀表板和報告中。 Edgio在我們發布了由EdgeQuery提供支援的CMCD報告時成為了早期採用者。
CDN控制門戶中提供的Edgio的CMCD報告示例
CMCD報告提供視覺化的概觀,並讓您輕鬆查看詳細資訊。 CMCD數據本身會發送到您的日誌存儲解決方案,無論該解決方案位於內部部署,與第三方共享,還是保存在Edgio的原始存儲上的網路中。
展望未來
如果您還沒有,現在應該已經熟悉CMCD以及它如何改變當前的流媒體。 作為CMCD的行業領導者,Edgio將繼續盡其所能地將其發揮到最大的作用。 敬請關注!
致謝
特別感謝我們的項目經理Anthony Karr的寶貴反饋和建議。 感謝我們的軟體架構師Yuri Nepyvoda的出色工作,領導了我們最先進的CMCD實施的開發。
術語
- CORS:跨源資源共享
- 互操作性:系統協同工作的能力。
- 開放規範:一組公開提供給任何人的已記錄要求和標準。
- OTT:Over-the-top是指在Internet服務之上交付內容。
- 預先擷取:預先擷取是在需要資料前將資料上傳至快取,以加速內容的傳送。 預取也稱為溫熱或預熱暫存。
- RUM:真實用戶測量數據
- SDK:軟體開發套件
- Uplynk:一款完美的流媒體平臺,帶有面向廣播公司和OTT提供商的集成CDN。