CMCDを使用したマルチCDNハイレベルアーキテクチャ
CMCDとは?
Common Media Client Data (CMCD)は、2020年にリリースされたオープン仕様CTA-5004である。 オープン・スペシフィケーションとは オープン仕様(Open specification)とは、誰にでも公開されている文書化された要件と標準のセットを指す。 ここでの大きな見出しは、CMCDオープン仕様が、メディアプレーヤー(クライアントと呼ばれる)がビデオストリーミングデータを生成し、メディア要求ごとにCDNと共有する方法を定義していることである。 この仕様が定義される前は、CDNを使用してクライアントデータがどのように送受信され、処理されるかはワイルドウェストだった。 CMCDの中心は貴重なデータを持つキーのセットに過ぎない。 CTA-5004を使用して、私はそれらのキーを要約し、有用なチートシートを作成するための洞察を追加した。概要 | キー | 定義 | *使用 |
---|---|---|---|
エンコードされたビットレート | Br | 要求されているオーディオまたはビデオオブジェクトのエンコードされたビットレート。 | 実際に配信されたビットレートを表示し、CDNがオブジェクトサイズを推測するために使用できる。 |
バッファの長さ | bl | 要求時のプレーヤーバッファの長さ。 | CDNが再生の健全性を推測するために使用できる。 |
バッファー不足 | BS | バッファ不足イベント。 再生中のリバッファ/ストールを示す。 | 再バッファの割合は、一定期間に少なくとも1回の再バッファイベントが発生したセッションに対するセッションの総数として計算される。 |
コンテンツID | CID | 現在のコンテンツを識別する一意の文字列。 | 問題のあるコンテンツを追跡するのに便利だが、プレイヤーが使用することはめったにない。 |
オブジェクトの期間 | d | 要求されているオブジェクトの再生時間(ミリ秒単位)。 |
集計すると、視聴時間の推定値として使用できる。 コンテンツが広告ブレークにあるかどうか、および視聴されている動画の種類を判断するために使用できる。 チャンク・サイズの決定に使用できる |
締め切り | DL | バッファアンダーランやその他の再生の問題を発生させないために、このセグメント/オブジェクトの最初のサンプルが使用可能になるまでの要求時間からの期限 | |
スループットを測定する | 中東電鉄 | クライアントによって測定された、クライアントとサーバ間のスループット。 | CDNとプレーヤー間の推定スループット帯域幅。 CDNと外部メトリクスを比較するのに便利。 |
次のオブジェクト要求 | NOR | 要求される次のオブジェクトの相対パス。 | プリフェッチに使用。 |
次の範囲要求 | NRR | 次のリクエストが部分オブジェクトリクエストである場合、この文字列はリクエストされるバイト範囲を示す。 'nor'フィールドが設定されていない場合、そのオブジェクトは現在要求されているオブジェクトと一致するものと見なされる。 | プリフェッチに使用。 |
オブジェクトタイプ | OT |
要求されている現在のオブジェクトのメディアタイプ: m =テキストファイル(マニフェストやプレイリストなど) A =音声のみ V =ビデオのみ AV =音声とビデオの多重化 I =セグメントを初期化 c =キャプションまたはサブタイトル tt=ISOBMFFタイムテキストトラック k =暗号化キー、ライセンス、または証明書。 =その他 要求されているオブジェクトタイプが不明な場合は、このキーを使用してはならない。 |
トラブルシューティングに使用。 エンコーディングとDRMの問題を特定するために使用できる DRMプロバイダは、現在どのバージョン/ブラウザが使用/サポートされているかについての可視性が限られているため、「k」は非常に有用である。
「c」を使用して、コンプライアンスの問題の可能性を警告できる。 |
再生率 | pr | リアルタイムの場合は1、ダブルスピードの場合は2、再生されていない場合は0。 1と等しくない場合にのみ送信される。 | プレイヤーが他の問題を補うために再生速度を調整しているかどうかを推測するために使用できる(オリジンやCDNがセグメントを十分に迅速に配信できないなど)。 |
要求された最大スループット | RTP |
クライアントがアセットの配信に十分と見なす要求された最大スループット。
***スループットは送信されるデータの量を示す |
プレイヤーとCDNのパフォーマンスを表示する。 これはより効率的なデータ管理のために使用することができ、実質的にリソースを節約する。
これは過剰配信によるバッファ飽和を防止することでクライアントに利益をもたらし、フェアシェア配信を通じてコミュニティに利益をもたらすこともできる。 コンセプトは、各クライアントが優れたパフォーマンスに必要なスループットを受け取るが、それ以上は受け取らないということである。 |
ストリーミング形式 | SF |
d = MPEGダッシュ h = HTTPライブストリーミング(HLS) s =スムーズストリーミング o =その他 |
DASH/HLSをサポートするプレイヤーのストリーム関連の問題を特定するのに役立つ。 マルチフォーマットをサポートしているプレーヤーのストリーミングフォーマットに基づいてパフォーマンスを比較できる。 |
セッションID | sid | 現在の再生セッションを識別するGUID。 再生セッションは通常、単一のメディアアセットに属するセグメントを結合する。 最大長は64文字。 UUID仕様に準拠することが推奨される。 |
このキーは常にCMCDロギングに含めることが推奨される。 ログを整列させるために使用されるため、間違いなく最も有用なキーである。
キャッシュの問題のトラブルシューティングに役立つ場合がある。 2つのセッションIDを持つ同じコンテンツIDは、キャッシュの問題を強く示している。 |
ストリームタイプ | st |
V =すべてのセグメントが使用可能(VODなど) l =時間の経過とともにセグメントが使用可能になる(ライブなど) |
トラブルシューティングのための非常に貴重な鍵。 |
スタートアップ | スー | コンテンツの起動を知らせる。 |
ビーコンの必要性を排除 CDNは、コンテンツの起動を知ることで、その後の再生を最適化するのに役立つ。 このフラグはバッファフラグ(BS)の後にも送信される。 |
トップビットレート | TB | クライアントが再生を許可されているマニフェストまたは再生リスト内の最も高いビットレートレンディション。 |
ビットレートまたはビットレートラダーの問題を特定するために使用される。 プレイヤーがその時点でプレイできる最上位ビットレートを表示する。 利用可能なビットレートとの比較に使用できる。 |
CMCDバージョン | V | 使用されているCMCD仕様のバージョン。 | このキーはバージョン管理を可能にし、将来CMCDバージョンがリリースされることを示す。 |
カスタムキー |
カスタムキーには「cmcd-」プレフィックスが必要。 架空の例:cmcd-edgio |
CMCDを完全にカスタマイズできるように拡張したユニークなCMCDキーを送信することができる。 |
現在、Edgioは全てのCMCDキーのサポートを公言している唯一のCDNである。 定義されたキーは、プレーヤーからCDNに3つの配信モードで送信できる。
- 各リクエストのカスタムHTTPヘッダー。 キーは4つのヘッダ名で使用できる。
- CMCD-Request:要求ごとに値が異なるキー。
- CMCD-Object:要求されているオブジェクトによって値が異なるキー。
- CMCD-Status:リクエストやオブジェクトごとに値が変化しないキー。
- CMCD-Session:セッションの存続期間中に値が不変であることが期待されるキー。
- HTTPクエリー引数。
- 各HTTPリクエストに依存しないJSONオブジェクト。
3つの配信モードを介したCMCDフォーマットでのバッファ不足と起動
CMCDを使用すべきユーザーは?
あらゆるサイズのストリーミングサービスはできるだけ早くCMCDを使用するべきである。 しかし、そのリリース以来、CMCDの知識と実装は限られている。 私たちが見ている傾向は、採用とサポートが増加していることを示している。 そうは言っても、私たちはあなたのユースケースについてあなたに話したいと思い、CMCDがあなたのビジネスをどのように高めることができるか。CMCDが必要な理由
CMCDは、ユーザーがプレイを打つたびに可能な限り最高のストリーミング体験を得ることを確認することについてすべてである。 Edgioのソリューションエンジニアとして、私の仕事は、コンテンツプロバイダーの技術アーキテクチャをレビューして、CDNがスムーズかつ効率的に機能し、最高のユーザーエクスペリエンスを実現することを確認することである。 技術的アーキテクチャの鍵となるコンポーネントは、ログ、メトリクス、トレース(観測可能性の3本柱とも呼ばれる)から収集されるデータである。 以下は、CMCDがまだそれに販売されていない場合に組み込む価値がある理由のいくつかのより多くの理由である。標準化
データは、アーキテクチャごとにサードパーティ製ツールと社内独自のツールを組み合わせて収集および分析される。 難しさは、収集されたデータがそれぞれ独自のフォーマットに従っていることである。 非標準データは、不整合、品質の低下、スケーラビリティの制限、メンテナンス作業の増加などの副作用を引き起こす可能性がある。 私はあなたにこれらの問題のいくつかまたはすべてに直面したことがないエンジニアを見つけることを挑戦する。 これに対処するため、CMCDはクライアントサイドデータ(プレーヤー)をサーバーサイドデータ(CDN)に標準化し、相互運用性を確保している。 これは、CDNがクライアントサイドのReal User Measurement (RUM)データに最も近いものになるため、重要である。強化されたカスタマイズ
カスタムCMCDキーは無限にそのユーティリティを拡張する。使用例:ステータスコードのカスタマイズ
Edgioが使用する現実世界のカスタムステータスコードは以下の通りである。 “000 -オリジンが応答を送信しなかった場合に返されるEdgio固有のステータスコード。したがって、ログに記録するステータスコードはない(たとえば、オリジンが応答を配信する前にクライアントが切断した場合)。” この定義は、ログ配信サービスの設定ドキュメントのログファイルフィールドセクションから。
Edgioはcmcd-000カスタムキーを作成することができた。
簡素化されたワークフロー
近年、テクノロジー企業はコスト削減、ツールの統合、全体的な複雑さの軽減を行っている。 CMCDが生成するフリーデータは、内部および外部のログ分析サービスに代わることができる。 その結果、ワークフローが簡素化され、最適化される。使用例:プレーヤーのワークフロー
古いプロセス
サードパーティ分析は、今日のストリーミング企業で広く使用されている。 しかしながら、これらのツールは、以下に示す統合のための広範かつ継続的なプロセスを必要とする。
-
- 調達
- 各サードパーティ分析ベンダーは、各プレーヤーとビーコン統合のための独自のソフトウェア開発キット(SDK)を持っている。 AndroidのExoPlayer (DASH)、AppleのPlayer (HLS)、MicrosoftのPlayReady (Xbox/Windows)、Webベース(ウェブサイト、テレビ)などは、それぞれ別々のSDKを必要とするプレイヤーの例である。
- テストと検証。 メタデータはベンダーのガイドラインに準拠する必要がある。
この完全なプロセスが簡単に1年以上かかることができることは注目に値する。
新しいプロセス
有効化は簡単である。 Edgioは、ログ配信サービスを介してほぼリアルタイムでCMCDデータをキャプチャできる。 つまり、次世代のデータ分析を可能にするために、プレーヤーのビーコンやサードパーティとの統合は必要ない。 大規模なユーザーベースを持つ当社の顧客にとって、これは年間数百万ドルの節約につながる。
セキュリティ
情報セキュリティはストリーミングに関して最初に考えることではないかもしれないが、それでも重要な要素である。- CMCDはユーザエクスペリエンスを情報から区分しているため、ログインデータにアクセスできないか、PII (Personal Identifiable Information)を含んでいない。 一般的なパフォーマンス情報のみが含まれる。
- CMCDデータは仲介サービスに依存しない。 これにより、データを内部に保持する第三者とのデータ共有が制限される。
オブザーバビリティ
CDNは、顧客がサービスをどのように体験しているかに関する正確なセッションデータを見ることができるようになった。 この共有可視性は、CDNとストリーミングプロバイダーが使用して、- より正確な監視とアラートを設定する。
- 大規模なインシデントのリードタイムを増やす。
- 問題をより効果的に診断して解決する。
使用例:停止の処理
古いプロセス
これは、ストリーミング会社の停止が別々のプレーヤーとCDNログで解決される典型的なプロセスフローである。
-
- 停止が発生した。 残念ながら、人間によるコミュニケーションやサードパーティ分析からの介入は通常提供されていない。
- パフォーマンスインジケータのドロップ、エラーコード、ダッシュボードなどから内部アラートがトリガーされる
- アラートは社内でトリアージされ、担当者、対象分野の専門家、部門の委任などの要因に基づいてエスカレートされる。
- これが以前に遭遇し、文書化された問題である場合は、Runbookが使用される。
- 問題をCDNなどのパートナーに外部からエスカレーションするかどうかを決定する。
- 解決に達した。
- 内部根本原因分析(RCA)が実行され、顧客に伝達される。
エスカレーションパスが長いため、この停止は解決に時間がかかる。
新しいプロセス
これは、CMCDを使用して停止を解決するプロセスフローである。
-
- 停止が発生した。 ネイティブCMCDデータへのアクセスにより、誰もが完全な可視性を得ることができる。 当社のマネージドサービスチームは、緩和のために積極的にお客様に連絡する。
- Edgioがリアルタイムで連携して、エンジニアと同じデータを見ながら停止を解決することで解決できる。
- Edgioは、RCAを支援し、パートナーとして戦略を立てることで、将来の障害を防止できる。
停止の解決が迅速に行われ、必要な内部エンジニアリングリソースが少なくて済む。
パフォーマンスの向上
CDNの主な目的は、インターネット上で配信されるコンテンツのパフォーマンスを向上させることである。プリフェッチ
ユニバーサルプリフェッチのサポートを解除するために、お客様からCMCDが最も頻繁に要求されている。 プリフェッチとは、コンテンツの配信を高速化するために必要になる前に、コンテンツデータをキャッシュにアップロードすることである。
次世代のインテリジェントなロードバランシング
当社のCDNは、プライベートグローバルネットワーク内で最も最適なPOP(Point of Prescence)からコンテンツを自動的に配信。 内部ネットワークの負荷分散を処理するが、複数のCDNが使用される場合、外部の負荷分散はより複雑で、コンテンツプロバイダーが管理するために難読化される。 問題は、ストリーミング企業が自社のスタック内のCDNをインテリジェントに活用する方法にある。 各企業は独自の方法でこの問題を解決しようとするが、ほとんどの場合、プレイヤーが委任したパーセンテージや可用性によって手動で分割される。 CMCD対応のロードバランシングが答えである。 CDNとプレーヤーのデータを統合ログに保存することで、インテリジェントなロードバランシングに必要な各CDNのパフォーマンスに関する洞察を深めることができる。 これは初期段階であるが、最も有望な特徴でもある。 ストリーミングプロバイダは、まだ本番環境でこの方法を使用していない。 それはその応用が理論的であることを意味するので、私はこれを言及する。 CMCDは、AI/MLなどの他の新興ストリーミング技術とともに進化し、成長しているため、このユースケースについてはさらに詳しく説明する。
使用例:インテリジェントな地理的負荷分散
ストリーミングプロバイダーは、ラテンアメリカで年間最大のライブスポーツイベントの独占的なストリーミング権利を持っている。 イベントに備えるために、CMCD対応のロードバランシングを採用することができる。 ゲーム中、データはリアルタイムで使用され、CDNスタックからリージョン、ロケール、POPごとに最高のパフォーマンスを持つトラフィックをCDNに自動的に分配する。 これにより、スタック内のCDNのパフォーマンスが低下したり、容量が不足したり、技術的な問題が発生したりした場合に、手動でフェイルオーバーする必要がなくなる。 このシナリオでは、当社のCDNが最大のトラフィックシェアを処理するだろう。これは、新興市場への多額の投資を優先しているため、Edgioは通常、ラテンアメリカの他のCDNよりも優れているためである。
適応型トラフィック最適化
CMCDのリアルタイム利用は、ストリーミング視聴者間での安定した再生ビットレートのような、適応的なトラフィック最適化に使用することができる。
CMCDを有効にする方法
続行する前に、プレーヤーとCDNの両方がCMCDの使用をサポートする必要があるという2つの技術的要件があることを知っておく必要がある。 今日のほとんどのプレイヤーとCDNはCMCDをサポートしている。プレーヤー | ヘッダー | クエリ | JSON |
---|---|---|---|
THEOplayer | |||
Bitmovin | |||
シャカプレイヤー | |||
Android ExoPlayer | |||
HLS.JS | |||
dash.js |
*プレーヤーのサポートは公開文書の入手可能性によって決定されており、このリストは完全ではないことに注意する必要がある。 CMCDプレーヤーのサポートと手を差し伸べること自由に感じ、私達はその情報を含めるために更新することができる。
? =執筆時点では公開されていない。 CMCD CDNサポートに連絡して自由に感じ、私達はその情報を含めるために更新することができる。
他の考慮事項もある:
- セキュリティ上の理由から、ウェブ上でのすべてのCMCDデータ転送にHTTP上でHTTPSを使用することを強く推奨する。
- CORSとコンテンツ保護により、CDN構成が複雑になる。 プレーヤーからCDNに送信されるヘッダーCMCD-Request、CMCD-Object、CMCD-Status、CMCD-Sessionを許可するようにCORSを設定する必要がある。
Edgio CDNで有効にする
手順については、CMCDレポートドキュメントの「CMCDロギングの有効化」セクションを参照。 まだお客様でない場合は、パフォーマンストライアルのために当社に連絡し、ソリューションエンジニアのチームと協力して、CDNの実際の動作を確認する。
アップリンクを有効にする
EdgioのUplynkは、放送局やOTTプロバイダー向けの統合CDNを備えた完璧なストリーミングプラットフォームである。 CMCDとUplynkを組み合わせることで、他のストリーミングプラットフォームにはないエンドツーエンドの可視性が向上する。 まだお客様ではない場合は、Uplynkデモのために私たちに連絡し、マネージドサービスに直接話して有効にする。 あなたは、ユーザーエクスペリエンスを最適化するためのEdgioとBitmovin Join ForcesでUplynkの将来についてもっと読むことができる。
CMCDを表示するには?
CMCDデータは、検査可能なCDNログ内にある。 データはログリポジトリ、ダッシュボード、レポートにプルすることができる。 Edgioは、EdgeQueryを搭載したCMCD Reportを発表したときに、アーリーアダプターになった。
CDN Control Portalで利用可能なEdgioのCMCDレポートの例
CMCDレポートはあなたの指先で詳細な情報を見る機能と共に視覚的な概要を与える。 CMCDデータ自体は、オンプレミスにあるか、サードパーティと共有されているか、EdgioのOrigin Storage上のネットワークに保持されているかにかかわらず、ログストレージソリューションに送信される。
今後の展望
まだやっていない場合は、CMCDとそれが今日のストリーミングをどのように変えることができるかについてよく知っているはずだ。 CMCDの業界リーダーとして、Edgioは可能な限りそれを最大限に活用し続ける。 お楽しみに!
謝辞
貴重なフィードバックと提案をしてくれたプログラムマネージャーのアンソニー・カーに感謝。 私たちの最先端のCMCD実装の開発をリードする彼の傑出した仕事のための私たちのソフトウェアアーキテクトYuri Nepyvodaのおかげで。
用語
- CORS:オリジン間のリソース共有
- 相互運用性:システムが連携して動作する能力。
- Open Specification:文書化された要件と標準のセット。
- OTT:Over-the-Top:インターネットサービス上にコンテンツを配信することを指す。
- プリフェッチ:プリフェッチとは、コンテンツの配信を高速化するために必要となる前にデータをキャッシュにアップロードすることである。 プリフェッチは、ウォームキャッシュまたはプレウォームキャッシュとも呼ばれる。
- RUM:リアルユーザー測定データ
- SDK:ソフトウェア開発キット
- Uplynk:放送局やOTTプロバイダー向けの統合CDNを備えた完璧なストリーミングプラットフォーム。