Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ライブコンテンツの高品質化を実現するクラウド動画配信システム / Cloud Video Streaming System for High Quality Live Events

ライブコンテンツの高品質化を実現するクラウド動画配信システム / Cloud Video Streaming System for High Quality Live Events

FIFA ワールドカップ カタール 2022 ではライブ配信における AWS Media Services の導入やデュアルリージョン、デュアル CDN など ABEMA では初の試みがいくつもありました。その動画配信のクラウドがどのような形で作られたのかを解説します。

https://developer.abema.io/2023/sessions/fHFuwjhNIO/?utm_medium=social&utm_source=speakerdeck

CyberAgent

April 19, 2023
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

  1. 従来の ABEMA の生配信 ドラマ 生放送 アニメ 18:00 20:00 22:00 TV

    型チャンネル PPV チャンネル 空き スロット PPV 生放送 空き スロット 18:00 20:00 22:00 2016 年、当時珍しかった TV 型番組制御の完全クラウド化を実現した。 2020 年、包括的な機能を素早く提供するために 同じシステムをペイパービューの配信にも利用した。 シンプルなライブ配信でも 24/7 チャンネルの一部として管理されている。
  2. 従来の ABEMA の生配信 ドラマ 生放送 アニメ 18:00 20:00 22:00 TV

    型チャンネル PPV チャンネル 空き スロット PPV 生放送 空き スロット 18:00 20:00 22:00 2016 年、当時珍しかった TV 型番組制御の完全クラウド化を実現した。 2020 年、包括的な機能を素早く提供するために 同じシステムをペイパービューの配信にも利用した。 シンプルなライブ配信でも 24/7 チャンネルの一部として管理されている。
  3. 従来の ABEMA の生配信 ドラマ 生放送 アニメ 18:00 20:00 22:00 TV

    型チャンネル PPV チャンネル 空き スロット PPV 生放送 空き スロット 18:00 20:00 22:00 2016 年、当時珍しかった TV 型番組制御の完全クラウド化を実現した。 2020 年、包括的な機能を素早く提供するために 同じシステムをペイパービューの配信にも利用した。 シンプルなライブ配信でも 24/7 チャンネルの一部として管理されている。
  4. 従来の ABEMA の生配信 ドラマ 生放送 アニメ 18:00 20:00 22:00 TV

    型チャンネル PPV チャンネル 空き スロット PPV 生放送 空き スロット 18:00 20:00 22:00 2016 年、当時珍しかった TV 型番組制御の完全クラウド化を実現した。 2020 年、包括的な機能を素早く提供するために 同じシステムをペイパービューの配信にも利用した。 シンプルなライブ配信でも 24/7 チャンネルの一部として管理されている。
  5. コンテキストの境界と概念の整理 プレイアウトコンテキスト ライブイベント 開始時刻 マルチアングル構成 番組編成コンテキスト チャンネルグループ タグ 開始時刻 プロファイル

    配信プロファイル チャンネル構成 チャンネル チャンネル チャンネル タイトル 上流 下流 動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。 動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。
  6. コンテキストの境界と概念の整理 プレイアウトコンテキスト ライブイベント 開始時刻 マルチアングル構成 番組編成コンテキスト チャンネルグループ タグ 開始時刻 プロファイル

    配信プロファイル チャンネル構成 チャンネル チャンネル チャンネル タイトル 動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。 動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。 上流 下流
  7. コンテキストの境界と概念の整理 プレイアウトコンテキスト ライブイベント 開始時刻 マルチアングル構成 番組編成コンテキスト チャンネルグループ タグ 開始時刻 プロファイル

    配信プロファイル チャンネル構成 チャンネル チャンネル チャンネル タイトル 上流 下流 動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。 動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。
  8. コンテキストの境界と概念の整理 プレイアウトコンテキスト ライブイベント 開始時刻 マルチアングル構成 番組編成コンテキスト チャンネルグループ タグ 開始時刻 プロファイル

    配信プロファイル チャンネル構成 チャンネル チャンネル チャンネル タイトル 上流 下流 動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。 動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。
  9. 配信プロファイル 【番組編成担当者】 プロファイル選択 【クラウド環境】 立ち上げからアーカイブまで自動化 FIFA ワールドカップ カタール 2022 プロファイル

    エンコーディングパラメーター 30p CBR / 60p QVBR 冗長レベル デュアル AZ + 一部デュアルリージョン DRM FairPlay / Widevine など パッケージング方式 HLS + MPEG2-TS / MPEG-DASH + ISO BMFF 利用可能環境 本番環境 / 開発環境
  10. エンコーディングパラメーター Defender FrameRate : 30000/1001 fps RateControl : CBR Height

    : 240 〜 1080 Midfielder FrameRate : 30000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 Striker FrameRate : 60000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 FIFA ワールドカップ カタール 2022 プロファイル スタンダードプロファイル エンコーディングの戦略に対して サッカーにちなんだコードネーム を付けた。 プロファイルには複数の戦略を割り当てることができ、各クライアントが デバイスに合ったものを選択 する。
  11. エンコーディングパラメーター Defender FrameRate : 30000/1001 fps RateControl : CBR Height

    : 240 〜 1080 Midfielder FrameRate : 30000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 Striker FrameRate : 60000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 FIFA ワールドカップ カタール 2022 プロファイル スタンダードプロファイル エンコーディングの戦略に対して サッカーにちなんだコードネーム を付けた。 プロファイルには複数の戦略を割り当てることができ、各クライアントが デバイスに合ったものを選択 する。
  12. エンコーディングパラメーター Defender FrameRate : 30000/1001 fps RateControl : CBR Height

    : 240 〜 1080 Midfielder FrameRate : 30000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 Striker FrameRate : 60000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 FIFA ワールドカップ カタール 2022 プロファイル スタンダードプロファイル エンコーディングの戦略に対して サッカーにちなんだコードネーム を付けた。 プロファイルには複数の戦略を割り当てることができ、各クライアントが デバイスに合ったものを選択 する。
  13. エンコーディングパラメーター Defender FrameRate : 30000/1001 fps RateControl : CBR Height

    : 240 〜 1080 Midfielder FrameRate : 30000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 Striker FrameRate : 60000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 FIFA ワールドカップ カタール 2022 プロファイル スタンダードプロファイル エンコーディングの戦略に対して サッカーにちなんだコードネーム を付けた。 プロファイルには複数の戦略を割り当てることができ、各クライアントが デバイスに合ったものを選択 する。
  14. エンコーディングパラメーター Defender FrameRate : 30000/1001 fps RateControl : CBR Height

    : 240 〜 1080 Midfielder FrameRate : 30000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 Striker FrameRate : 60000/1001 fps RateControl : QVBR/CBR Height : 240 〜 1080 FIFA ワールドカップ カタール 2022 プロファイル スタンダードプロファイル エンコーディングの戦略に対して サッカーにちなんだコードネーム を付けた。 プロファイルには複数の戦略を割り当てることができ、各クライアントが デバイスに合ったものを選択 する。
  15. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  16. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  17. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  18. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  19. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  20. 配信経路の構成 AWS Elemental MediaLive Channel AWS Elemental MediaPackage Channel Manipulator

    (EKS) Akamai Amazon CloudFront AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaLive Input Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) Ad Server SPEKE Proxy (Lambda) NEXTSCAPE License Proxy (GKE) カメラアングル毎に自動構築 アングル毎に 2 台設置 Cue 信号等 Live Mgmt. Tool 「ATLAS」 国内中継拠点
  21. AWS ソウル AWS 東京 アングルとアベイラビリティゾーン、リージョン 全アングルが2つのアベイラビリティゾーン AWS MediaConnect Flow x2

    AWS MediaLive Standard Pipeline + メインカメラは更にデュアルリージョン AWS 東京リージョン / AWS ソウルリージョン メインカメラ (2 AZ) ペア メインカメラ (2 AZ) 日本カメラ1 (2 AZ) 日本カメラ2 (2 AZ) クロアチアカメラ (2 AZ) 4分割カメラ1 (2 AZ) 全体カメラ (2 AZ) グループ管理 (EKS) 作成 チャンネル管理 (EKS) チャンネル管理 (EKS) 登録 登録 作成
  22. AWS ソウル AWS 東京 アングルとアベイラビリティゾーン、リージョン 全アングルが2つのアベイラビリティゾーン AWS MediaConnect Flow x2

    AWS MediaLive Standard Pipeline + メインカメラは更にデュアルリージョン AWS 東京リージョン / AWS ソウルリージョン メインカメラ (2 AZ) ペア メインカメラ (2 AZ) 日本カメラ1 (2 AZ) 日本カメラ2 (2 AZ) クロアチアカメラ (2 AZ) 4分割カメラ1 (2 AZ) 全体カメラ (2 AZ) グループ管理 (EKS) 作成 チャンネル管理 (EKS) チャンネル管理 (EKS) 登録 登録 作成
  23. AWS ソウル AWS 東京 アングルとアベイラビリティゾーン、リージョン 全アングルが2つのアベイラビリティゾーン AWS MediaConnect Flow x2

    AWS MediaLive Standard Pipeline + メインカメラは更にデュアルリージョン AWS 東京リージョン / AWS ソウルリージョン メインカメラ (2 AZ) ペア メインカメラ (2 AZ) 日本カメラ1 (2 AZ) 日本カメラ2 (2 AZ) クロアチアカメラ (2 AZ) 4分割カメラ1 (2 AZ) 全体カメラ (2 AZ) グループ管理 (EKS) 作成 チャンネル管理 (EKS) チャンネル管理 (EKS) 登録 登録 作成
  24. AWS ソウル AWS 東京 アングルとアベイラビリティゾーン、リージョン 全アングルが2つのアベイラビリティゾーン AWS MediaConnect Flow x2

    AWS MediaLive Standard Pipeline + メインカメラは更にデュアルリージョン AWS 東京リージョン / AWS ソウルリージョン メインカメラ (2 AZ) ペア メインカメラ (2 AZ) 日本カメラ1 (2 AZ) 日本カメラ2 (2 AZ) クロアチアカメラ (2 AZ) 4分割カメラ1 (2 AZ) 全体カメラ (2 AZ) グループ管理 (EKS) 作成 チャンネル管理 (EKS) チャンネル管理 (EKS) 登録 登録 作成
  25. 同時に使用した主な Media 系リソース(12月1日深夜の例) ※各試合のメインアングルのみ 2 リージョンに作成する。 ※MediaLive はアングル毎にユーザー配信用と検査用の 2 Channels

    がある。 ※MediaPackage はアングル毎に 30p と 60p の 2 Channels がある。 ※MediaConnect はアングル毎に Primary と Secondary、検査用 A、検査用 B の 4 Flows がある。 1日 23:15 放送開始 カナダ vs モロッコ 1日 23:15 放送開始 クロアチア vs ベルギー 2日 03:00 放送開始 日本 vs スペイン 2日 03:00 放送開始 コスタリカ vs ドイツ 5 アングル 5 アングル 6 アングル 5 アングル MediaConnect 24 Flows MediaLive 12 Channels MediaPackage 12 Channels MediaConnect 24 Flows MediaLive 12 Channels MediaPackage 12 Channels MediaConnect 28 Flows MediaLive 14 Channels MediaPackage 14 Channels MediaConnect 24 Flows MediaLive 12 Channels MediaPackage 12 Channels MediaConnect 100 Flows MediaLive 50 Channels MediaPackage 50 Channels
  26. デュアル CDN 従来から動画配信に利用していた Akamai に加えて Amazon CloudFront を採用 耐障害性 キャパシティ

    大手 CDN ベンダーでもトラブルのリスクはゼロではない。 複数のベンダーによる配信体制でリスクを低減する。 より多くの帯域を確実に確保する。 知見の獲得 CDN バランサー運用の知見を得る。 戦略の異なる製品で同じストリームを配信することにより、 QoE やオリジンリクエストなどを多角的に分析する。
  27. 初回再生時のストリーム選択とフェイルオーバー AWS 東京 AWS ソウル Amazon CloudFront メインアングル Akamai Amazon

    CloudFront Akamai AWS 東京 Amazon CloudFront Akamai サブアングル • 再生セッション開始時に選択 • 初回の選択でできるだけ均等に分散 • 再生エラー時にローテート
  28.   冗長構成が活きた事例 AWS Elemental MediaLive AWS Elemental MediaConnect AWS Elemental

    MediaConnect Zixi Feeder Primary (on-prem) Zixi Feeder Secondary (on-prem) AWS Elemental Live (on-prem) AWS Elemental Live (on-prem) AWS Elemental MediaPackage Manipulator (EKS) Akamai AWS Elemental MediaLive AWS Elemental MediaConnect AWS Elemental MediaConnect AWS Elemental MediaPackage Manipulator (EKS) AWS 東京 AWS ソウル 「韓国 vs ガーナ」メインアングルで東京の MediaLive が数分間ダウン。 ソウルリージョンによって配信を継続 することができた。 Amazon CloudFront Akamai Amazon CloudFront
  29. 広告挿入の手段 方法 Pros Cons On-prem 不連続点がなく再生が安定しやすい。 低遅延配信をしやすい。 新たに物理的な設備が必要。 高精度のトラッキングがしづらい。 出し分けができない。

    Server Side (SSAI) ABEMA での実績がある。 ある程度の出し分けが可能。 不連続点で再生が不安定になりやすい。 ライセンスリクエストの負荷対策が必要。 SSAI + Personalized Ad ABEMA での実績がある。 セッションごとの出し分けが可能。 不連続点で再生が不安定になりやすい。 同時接続数に対する負荷が大きい。 Server Guided (SGAI) ライブでの自然な広告挿入と 最大限の出し分けを同時に実現する。 各デバイスごとに開発コストがかかる。 特殊な実装が必要。 Ad Server の負荷対策が必要。 Client Side (CSAI) 最大限の出し分けが可能。 各デバイスごとに開発コストがかかる。 ライブで自然に見せるのが難しい。 Ad Server の負荷対策が必要。 ※FIFA ワールドカップ カタール 2022 では広告の出し分けの要件はありませんでした。
  30. 広告挿入の手段 方法 Pros Cons On-prem 不連続点がなく再生が安定しやすい。 低遅延配信をしやすい。 新たに物理的な設備が必要。 高精度のトラッキングがしづらい。 出し分けができない。

    Server Side (SSAI) ABEMA での実績がある。 ある程度の出し分けが可能。 不連続点で再生が不安定になりやすい。 ライセンスリクエストの負荷対策が必要。 SSAI + Personalized Ad ABEMA での実績がある。 セッションごとの出し分けが可能。 不連続点で再生が不安定になりやすい。 同時接続数に対する負荷が大きい。 Server Guided (SGAI) ライブでの自然な広告挿入と 最大限の出し分けを同時に実現する。 各デバイスごとに開発コストがかかる。 特殊な実装が必要。 Ad Server の負荷対策が必要。 Client Side (CSAI) 最大限の出し分けが可能。 各デバイスごとに開発コストがかかる。 ライブで自然に見せるのが難しい。 Ad Server の負荷対策が必要。 ※FIFA ワールドカップ カタール 2022 では広告の出し分けの要件はありませんでした。
  31. 広告挿入の手段 方法 Pros Cons On-prem 不連続点がなく再生が安定しやすい。 低遅延配信をしやすい。 新たに物理的な設備が必要。 高精度のトラッキングがしづらい。 出し分けができない。

    Server Side (SSAI) ABEMA での実績がある。 ある程度の出し分けが可能。 不連続点で再生が不安定になりやすい。 ライセンスリクエストの負荷対策が必要。 SSAI + Personalized Ad ABEMA での実績がある。 セッションごとの出し分けが可能。 不連続点で再生が不安定になりやすい。 同時接続数に対する負荷が大きい。 Server Guided (SGAI) ライブでの自然な広告挿入と 最大限の出し分けを同時に実現する。 各デバイスごとに開発コストがかかる。 特殊な実装が必要。 Ad Server の負荷対策が必要。 Client Side (CSAI) 最大限の出し分けが可能。 各デバイスごとに開発コストがかかる。 ライブで自然に見せるのが難しい。 Ad Server の負荷対策が必要。 ※FIFA ワールドカップ カタール 2022 では広告の出し分けの要件はありませんでした。
  32. SSAI (Server Side Ad Insertion) SCTE time_signal AWS Elemental MediaLive

    Channel AWS Elemental MediaPackage Channel Manipulator (EKS) AWS Elemental Live (on-prem) Ad Server GCS HLS MPEG-DASH VAST M3U8/MPD TS/MP4 API USB S3 Slate HLS Live Mgmt. Tool 「ATLAS」 キーフレーム挿入 Slate 挿入 (Blanking) 広告プリフェッチ 広告挿入 ID3 挿入 CDN CM ボタン オンプレミスでの SCTE 信号挿入は ABEMA News チャンネルだけで、それ以外は API 経由でクラウド挿入だった。 新しい構成では、 VANC インサータを備えていないスタジオでもオンプレミスでの挿入ができるようになった。
  33. ライセンスリクエストの負荷対策 オープニング (DRM) 広告 前半戦 (DRM) 広告 後半戦 (DRM) 全デバイスが一斉にリクエスト

    【対策1】 広告前から再生を継続していれば冗長な再リクエストを減らすように改修 【対策2】 秒単位で発生する最大リクエストを推定しサーバー台数を事前に調整 広告 エンディング (DRM) 【問題点】 プレイヤーのデフォルト動作だと、広告から本編への遷移時に一斉にリクエストが発生する。 秒レベルで瞬間的に跳ね上がるため、メトリクスベースの自動スケールでは対応できない。 ある程度分散させる対策はしていたが、今回の規模では十分ではない。
  34. AWS CloudWatch Logs Insights 主なモニタリングの流れ ※Antares (https://github.com/abema/antares) は自作の HLS/MPEG-DASH 検査ツール。

    Procyon はその ABEMA 用のラッパー。 Slack PagerDuty Grafana Procyon Web UI Akamai Control Center 電話通知 Google Kubernetes Engine AWS EKS AWS CloudWatch Procyon/Antares Bugsnag Dashboard Bugsnag Amazon CloudFront AWS Media Services Prometheus 定期確認・分析 分析 定期確認・分析 通知 分析 定期確認・分析 Akamai
  35. まとめ FIFA ワールドカップ カタール 2022 から導入した動画配信システムを紹介 初めて AWS MediaConnect /

    MediaLive / MediaPackage を本格導入 複数のリージョン・複数の CDN を活用 生配信の枠組みを刷新 今後の様々な配信イベントを実現する土台