FIFA ワールドカップ カタール 2022 ではライブ配信における AWS Media Services の導入やデュアルリージョン、デュアル CDN など ABEMA では初の試みがいくつもありました。その動画配信のクラウドがどのような形で作られたのかを解説します。
https://developer.abema.io/2023/sessions/fHFuwjhNIO/?utm_medium=social&utm_source=speakerdeck
View Slide
発表者紹介久保亮介2012年株式会社サイバーエージェント入社。2016年から現在までABEMAの動画配信サーバー開発に従事。FIFA ワールドカップ カタール 2022では、動画配信のクラウド全般を担当。(株)AbemaTV 開発本部 コンテンツ配信チーム・エンジニア
お伝えする内容FIFA ワールドカップ カタール 2022 から運用を開始したライブ配信のクラウド構成を解説します。
従来のABEMAの生配信と課題
従来の ABEMA の生配信ドラマ生放送アニメ18:0020:0022:00TV 型チャンネル PPV チャンネル空きスロットPPV生放送空きスロット18:0020:0022:002016 年、当時珍しかったTV 型番組制御の完全クラウド化を実現した。2020 年、包括的な機能を素早く提供するために同じシステムをペイパービューの配信にも利用した。シンプルなライブ配信でも24/7 チャンネルの一部として管理されている。
従来の ABEMA のシステムにあった課題番組運用のしづらさ 放送時間の延長や短縮などに制約が多い。構成変更のしづらさチャンネル単位の管理が前提になっていて、番組毎に解像度や画質、 DRM を変えにくい。開発コスト自社開発の領域が広すぎる。今ではマネージドサービスに置き換えられる部分も増えた。
新しいライブ配信の枠組み
コンテキストの境界と概念の整理プレイアウトコンテキストライブイベント開始時刻マルチアングル構成番組編成コンテキストチャンネルグループタグ開始時刻プロファイル配信プロファイルチャンネル構成チャンネルチャンネルチャンネルタイトル上流下流動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。
コンテキストの境界と概念の整理プレイアウトコンテキストライブイベント開始時刻マルチアングル構成番組編成コンテキストチャンネルグループタグ開始時刻プロファイル配信プロファイルチャンネル構成チャンネルチャンネルチャンネルタイトル動画配信基盤とアプリケーションの概念を異なるコンテキストに分離して整理した。動画配信の詳細は下流では抽象化され、機能固有の概念を上流に侵食させない。上流下流
配信プロファイル【番組編成担当者】プロファイル選択【クラウド環境】立ち上げからアーカイブまで自動化FIFA ワールドカップ カタール 2022 プロファイルエンコーディングパラメーター30p CBR / 60p QVBR冗長レベルデュアル AZ + 一部デュアルリージョンDRMFairPlay / Widevine などパッケージング方式HLS + MPEG2-TS / MPEG-DASH + ISO BMFF利用可能環境本番環境 / 開発環境
エンコーディングパラメーターDefenderFrameRate : 30000/1001 fpsRateControl : CBRHeight : 240 〜 1080MidfielderFrameRate : 30000/1001 fpsRateControl : QVBR/CBRHeight : 240 〜 1080StrikerFrameRate : 60000/1001 fpsRateControl : QVBR/CBRHeight : 240 〜 1080FIFA ワールドカップ カタール 2022プロファイルスタンダードプロファイルエンコーディングの戦略に対してサッカーにちなんだコードネームを付けた。プロファイルには複数の戦略を割り当てることができ、各クライアントがデバイスに合ったものを選択する。
配信経路の構成AWSElementalMediaLiveChannelAWSElementalMediaPackageChannelManipulator(EKS)AkamaiAmazonCloudFrontAWSElementalMediaConnectAWSElementalMediaConnectAWSElementalMediaLiveInputZixi FeederPrimary(on-prem)Zixi FeederSecondary(on-prem)AWSElemental Live(on-prem)AWSElemental Live(on-prem)Ad ServerSPEKE Proxy(Lambda)NEXTSCAPELicense Proxy(GKE)カメラアングル毎に自動構築アングル毎に2 台設置Cue 信号等Live Mgmt. Tool「ATLAS」国内中継拠点
デュアルリージョン & デュアルCDN
AWS ソウルAWS 東京アングルとアベイラビリティゾーン、リージョン全アングルが2つのアベイラビリティゾーンAWS MediaConnect Flow x2AWS 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)登録登録作成
同時に使用した主な 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 FlowsMediaLive 12 ChannelsMediaPackage 12 ChannelsMediaConnect 24 FlowsMediaLive 12 ChannelsMediaPackage 12 ChannelsMediaConnect 28 FlowsMediaLive 14 ChannelsMediaPackage 14 ChannelsMediaConnect 24 FlowsMediaLive 12 ChannelsMediaPackage 12 ChannelsMediaConnect 100 FlowsMediaLive 50 ChannelsMediaPackage 50 Channels
デュアル CDN従来から動画配信に利用していた Akamai に加えて Amazon CloudFront を採用耐障害性キャパシティ大手 CDN ベンダーでもトラブルのリスクはゼロではない。複数のベンダーによる配信体制でリスクを低減する。より多くの帯域を確実に確保する。知見の獲得CDN バランサー運用の知見を得る。戦略の異なる製品で同じストリームを配信することにより、QoE やオリジンリクエストなどを多角的に分析する。
初回再生時のストリーム選択とフェイルオーバーAWS 東京AWS ソウルAmazonCloudFrontメインアングルAkamaiAmazonCloudFrontAkamaiAWS 東京AmazonCloudFrontAkamaiサブアングル● 再生セッション開始時に選択● 初回の選択でできるだけ均等に分散● 再生エラー時にローテート
冗長構成が活きた事例AWSElementalMediaLiveAWSElementalMediaConnectAWSElementalMediaConnectZixi FeederPrimary(on-prem)Zixi FeederSecondary(on-prem)AWSElemental Live(on-prem)AWSElemental Live(on-prem)AWSElementalMediaPackageManipulator(EKS)AkamaiAWSElementalMediaLiveAWSElementalMediaConnectAWSElementalMediaConnectAWSElementalMediaPackageManipulator(EKS)AWS 東京AWS ソウル「韓国 vs ガーナ」メインアングルで東京の MediaLive が数分間ダウン。ソウルリージョンによって配信を継続することができた。AmazonCloudFrontAkamaiAmazonCloudFront
広告挿入とDRM
広告挿入の手段方法 Pros ConsOn-prem不連続点がなく再生が安定しやすい。低遅延配信をしやすい。新たに物理的な設備が必要。高精度のトラッキングがしづらい。出し分けができない。Server Side (SSAI)ABEMA での実績がある。ある程度の出し分けが可能。不連続点で再生が不安定になりやすい。ライセンスリクエストの負荷対策が必要。SSAI + Personalized AdABEMA での実績がある。セッションごとの出し分けが可能。不連続点で再生が不安定になりやすい。同時接続数に対する負荷が大きい。Server Guided (SGAI)ライブでの自然な広告挿入と最大限の出し分けを同時に実現する。各デバイスごとに開発コストがかかる。特殊な実装が必要。Ad Server の負荷対策が必要。Client Side (CSAI) 最大限の出し分けが可能。各デバイスごとに開発コストがかかる。ライブで自然に見せるのが難しい。Ad Server の負荷対策が必要。※FIFA ワールドカップ カタール 2022 では広告の出し分けの要件はありませんでした。
SSAI (Server Side Ad Insertion)SCTE time_signal AWSElementalMediaLiveChannelAWSElementalMediaPackageChannelManipulator(EKS)AWSElemental Live(on-prem)Ad ServerGCSHLSMPEG-DASHVAST M3U8/MPDTS/MP4APIUSBS3SlateHLSLive Mgmt. Tool「ATLAS」キーフレーム挿入Slate 挿入 (Blanking)広告プリフェッチ広告挿入ID3 挿入CDNCM ボタンオンプレミスでの SCTE 信号挿入は ABEMA News チャンネルだけで、それ以外は API 経由でクラウド挿入だった。新しい構成では、 VANC インサータを備えていないスタジオでもオンプレミスでの挿入ができるようになった。
ライセンスリクエストの負荷対策オープニング (DRM) 広告 前半戦 (DRM) 広告 後半戦 (DRM)全デバイスが一斉にリクエスト【対策1】広告前から再生を継続していれば冗長な再リクエストを減らすように改修【対策2】秒単位で発生する最大リクエストを推定しサーバー台数を事前に調整広告 エンディング (DRM)【問題点】プレイヤーのデフォルト動作だと、広告から本編への遷移時に一斉にリクエストが発生する。秒レベルで瞬間的に跳ね上がるため、メトリクスベースの自動スケールでは対応できない。ある程度分散させる対策はしていたが、今回の規模では十分ではない。
監視
AWSCloudWatchLogs Insights主なモニタリングの流れ※Antares (https://github.com/abema/antares) は自作の HLS/MPEG-DASH 検査ツール。 Procyon はその ABEMA 用のラッパー。SlackPagerDutyGrafanaProcyonWeb UIAkamaiControl Center電話通知GoogleKubernetes EngineAWS EKSAWSCloudWatchProcyon/AntaresBugsnagDashboardBugsnagAmazon CloudFrontAWS Media ServicesPrometheus定期確認・分析分析定期確認・分析通知分析定期確認・分析Akamai
Slack 通知の例
Slack 通知の例先述の「韓国 vs ガーナ」で東京のストリームが停止したことを検知した際の通知
今後について
今後の主な改善点と展望広告挿入パーソナライズやその他の先進技術を導入する。トランスコードシステムを刷新する。低遅延化 遅延の低減が求められるスポーツ配信等に適したストリームを提供する。高圧縮率・高画質化 ビットレートをおさえつつ高画質を配信する。旧システムの刷新 旧来のシステムのうち、非効率な箇所をマネージドサービスへ移行する。
まとめ
まとめFIFA ワールドカップ カタール 2022 から導入した動画配信システムを紹介初めて AWS MediaConnect / MediaLive / MediaPackage を本格導入複数のリージョン・複数の CDN を活用生配信の枠組みを刷新今後の様々な配信イベントを実現する土台