Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

五藤 佑典 YUSUKE GOTO https://ygoto3.com/ @ygoto3_ ● California State University, San Bernardino グラフィックデザイン専攻 Career History 1. Graphic / Web Designer 2. Marketer 3. Web Engineer 4. Video Engineer 5. Product Manager ● CyberAgent Developer Expert @(株)サイバーエージェント ● テクニカルプロダクトマネージャー @(株)AbemaTV CTV 事業部

Slide 3

Slide 3 text

in Video Technology and Product Design

Slide 4

Slide 4 text

アジェンダ ● 未踏領域の再生品質に向き合う ● 再生クライアントに届ける配信バリエーションを設計する ● 再生クライアントと映像品質構成の組み合わせを設計する ● 大規模トラフィックを支える再生クライアントを設計する ● キックオフ:試合展開に合わせて戦術を変える ● FIFA ワールドカップ カタール 2022を経た次の再生品質を考える

Slide 5

Slide 5 text

未踏領域の再生品質に向き合う

Slide 6

Slide 6 text

未踏領域の再生品質に向き合う

Slide 7

Slide 7 text

未踏領域の再生品質に向き合う ABEMA では視聴品質を 3 つの品質要素で管理する 視聴品質 配信品質 映像品質 再生品質

Slide 8

Slide 8 text

未踏領域の再生品質に向き合う 動画再生にはサーバー側で検知できない不具合リスクが多い ● 正常なレスポンスだが再生に失敗 ● 特定のバージョンでのみ発生 ● 特定の環境でのみ発生 ● 特定のデバイスでのみ発生 ● サーバーがリクエストを受け取る前にクラッシュ ● 出力マニフェストの変更によりリバッファリングの頻度増加 ● エンコーディングパラメータの変更によりデコード失敗 ● コンテンツ特性である区間だけ高ビットレート

Slide 9

Slide 9 text

未踏領域の再生品質に向き合う 動画再生にはサーバー側で検知できない不具合リスクが多い ● 正常なレスポンスだが再生に失敗 ● 特定のバージョンでのみ発生 ● 特定の環境でのみ発生 ● 特定のデバイスでのみ発生 ● サーバーがリクエストを受け取る前にクラッシュ ● 出力マニフェストの変更によりリバッファリングの頻度増加 ● エンコーディングパラメータの変更によりデコード失敗 ● コンテンツ特性である区間だけ高ビットレート ABEMA の動画は本当に私たちの期待通りユーザーに視聴されているのか?

Slide 10

Slide 10 text

未踏領域の再生品質に向き合う 動画再生にはサーバー側で検知できない不具合リスクが多い ● 正常なレスポンスだが再生に失敗 ● 特定のバージョンでのみ発生 ● 特定の環境でのみ発生 ● 特定のデバイスでのみ発生 ● サーバーがリクエストを受け取る前にクラッシュ ● 出力マニフェストの変更によりリバッファリングの頻度増加 ● エンコーディングパラメータの変更によりデコード失敗 ● コンテンツ特性である区間だけ高ビットレート ABEMA の動画は本当に私たちの期待通りユーザーに視聴されているのか? ユーザーの環境でしか確認できない

Slide 11

Slide 11 text

未踏領域の再生品質に向き合う RUM : Real User Measurement で再生品質指標を取得する https://npaw.com/ w/

Slide 12

Slide 12 text

未踏領域の再生品質に向き合う どんな指標で再生品質を評価するか? 致命的な再生障害発生率を計測する指標 ● Startup failure % = 再生を指示してから再生開始前に失敗した % ● In-Stream failure % = 再生開始後、再生終了前に失敗した % 再生の快適さを計測する指標 ● Join time = 再生を指示してから最初のフレーム表示までの時間 ● Buffering ratio = 視聴時間全体に対するバッファリング時間の割合 ● Buffering event % = 再生中でのバッファリングの頻度 ● Average bitrate = 再生中の平均ビットレート

Slide 13

Slide 13 text

未踏領域の再生品質に向き合う ABEMA の再生品質に対するこれまでの取り組みについては 下記資料もご覧いただけます

Slide 14

Slide 14 text

未踏領域の再生品質に向き合う 『FIFA ワールドカップ カタール 2022』は ABEMA にとって未踏の規模かつ未踏の品質を提供することが求められた 記事引用元:https://times.abema.tv/fifaworldcup/articles/-/10053448

Slide 15

Slide 15 text

未踏領域の再生品質に向き合う 未踏領域の視聴体験を提供するための再生品質を設計する ● 再生クライアントに届ける配信バリエーションを設計する ● 再生クライアントと映像品質構成の組み合わせを設計する ● 大規模トラフィックを支える再生クライアントを設計する

Slide 16

Slide 16 text

再生クライアントに届ける 配信バリエーションを設計する

Slide 17

Slide 17 text

再生クライアントに届ける配信バリエーションを設計する 未踏の視聴体験を作るために既存のライブ動画システムから離れ 新しい動画配信システムを設計する

Slide 18

Slide 18 text

再生クライアントに届ける配信バリエーションを設計する 今後の ABEMA のライブ動画配信システムの基礎となるシステムを作る ● ライブでも高い映像品質の動画ストリーム ● セキュアな配信/再生システム 未踏の視聴体験を作るために既存のライブ動画システムから離れ 新しい動画配信システムを設計する

Slide 19

Slide 19 text

再生クライアントに届ける配信バリエーションを設計する 配信ストリームのバリエーションのポイント ● ストリーミングプロトコル ● コンテンツ保護形式 ● 映像品質構成

Slide 20

Slide 20 text

配信ストリームのバリエーション設計 ストリーミングプロトコル ● 現在 ABEMA で使用するストリーミングプロトコルは 2 種類 ○ HTTP Live Streaming a.k.a. HLS ○ MPEG-DASH

Slide 21

Slide 21 text

配信ストリームのバリエーション設計 ABEMA 従来のストリーミングプロトコル設計方針 HLS を使用するプラットフォーム ● iOS app ● tvOS app ● Android mobile app ● Android TV app ● Nintendo Switch app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) ● Web app on Chrome (Android mobile) ● Google Cast receiver app MPEG-DASH を使用するプラットフォーム ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) 必要な理由がない限り HLS を使用

Slide 22

Slide 22 text

配信ストリームのバリエーション設計 HLS を使用するプラットフォーム ● iOS app ● tvOS app ● Android mobile app ● Android TV app ● Nintendo Switch app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) ● Web app on Chrome (Android mobile) ● Google Cast receiver app MPEG-DASH を使用するプラットフォーム ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) ・HTML Living Standard 技術で DRM を使う場合は  EME(Encrypted Media Extensions)と  Common Encryption の利用が安全 ・MPEG-DASH はエコシステムに優位性あり ABEMA 従来のストリーミングプロトコル設計方針 必要な理由がない限り HLS を使用

Slide 23

Slide 23 text

配信ストリームのバリエーション設計 新配信ストリーム設計では可能な限り MPEG-DASH を使用 HLS ● iOS app ● tvOS app ● Nintendo Switch app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) MPEG-DASH ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) ● Android mobile app ● Android TV app ● Web app on Chrome (Android mobile) ● Google Cast receiver app 柔軟なマニフェスト表現と強度なセキュリティを獲得

Slide 24

Slide 24 text

配信ストリームのバリエーション設計 HLS ● iOS app ● tvOS app ● Nintendo Switch app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) MPEG-DASH ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) ● Android mobile app ● Android TV app ● Web app on Chrome (Android mobile) ● Google Cast receiver app ・Apple 社のプラットフォームは  同社開発のプロトコルに圧倒的メリット ・ゲームコンソールは動画エコシステムに課題 新配信ストリーム設計では可能な限り MPEG-DASH を使用 柔軟なマニフェスト表現と強度なセキュリティを獲得

Slide 25

Slide 25 text

配信ストリームのバリエーション設計 新配信ストリーム設計では可能な限り MPEG-DASH を使用 柔軟なマニフェスト表現と強度なセキュリティを獲得 HLS ● iOS app ● tvOS app ● Nintendo Switch app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) ・Apple 社のプラットフォームは  同社開発のプロトコルに圧倒的メリット ・ゲームコンソールは動画エコシステムに課題 MPEG-DASH ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) ● Android mobile app ● Android TV app ● Web app on Chrome (Android mobile) ● Google Cast receiver app

Slide 26

Slide 26 text

配信ストリームのバリエーション設計 セキュリティ:新配信ストリーム設計でのコンテンツ保護 DRM - Digital Rights Management Custom DRM プラットフォームで標準的に利用可能な一番強度が高い保護 Apple FairPlay Streaming ● iOS app ● tvOS app ● Web app on Safari (Desktop) ● Web app on Safari (Mobile) Google Widevine ● HTML5-based TV app ● Web app on Edge ● Web app on Chrome (Desktop) ● Android mobile app ● Android TV app ● Web app on Chrome (Android mobile) ● Google Cast receiver app HLS AES-128 拡張 独自保護技術 ● Nintendo Switch app

Slide 27

Slide 27 text

再生クライアントに届ける配信バリエーションを設計する 配信ストリームのバリエーションのポイント ● ストリーミングプロトコル ● コンテンツ保護形式 ● 映像品質構成

Slide 28

Slide 28 text

再生クライアントと映像品質構成の 組み合わせを設計する

Slide 29

Slide 29 text

再生クライアントと映像品質構成の組み合わせを設計する 配信ストリームのバリエーションのポイント ● ストリーミングプロトコル ● コンテンツ保護形式 ● 映像品質構成

Slide 30

Slide 30 text

再生クライアントと映像品質構成の組み合わせを設計する 視聴者に最高の映像品質を届ける

Slide 31

Slide 31 text

再生クライアントと映像品質構成の組み合わせを設計する 視聴者に最高の映像品質を届ける 再生クライアントはデバイスの性能を超えた映像の情報量を 安定してデコードできない

Slide 32

Slide 32 text

再生クライアントと映像品質構成の組み合わせを設計する 視聴者に最高の映像品質を届ける 再生クライアントはデバイスの性能を超えた映像の情報量を 安定してデコードできない デバイス性能の限界と映像品質構成を設計する

Slide 33

Slide 33 text

再生クライアントと映像品質構成の組み合わせを設計する トレードオフ 1. エンターテインメントプラットフォームとして高品質映像の提供 a. デコード性能が低いデバイスで再生処理が追いつかない 2. 社会インフラとして網羅性が高いデバイスカバレッジの提供 a. デコード性能が低いデバイスが問題なく再生できるように 映像情報量を少なくする → 映像品質が低くなる

Slide 34

Slide 34 text

再生クライアントと映像品質構成の組み合わせを設計する トレードオフ 1. エンターテインメントプラットフォームとして高品質映像の提供 a. デコード性能が低いデバイスで再生処理が追いつかない 2. 社会インフラとして網羅性が高いデバイスカバレッジの提供 a. デコード性能が低いデバイスが問題なく再生できるように 映像情報量を少なくする → 映像品質が低くなる デバイスカバレッジのための映像品質構成と高品質映像のための映像品質構成を 両方用意する

Slide 35

Slide 35 text

再生クライアントと映像品質構成の組み合わせを設計する ● エンターテインメントプラットフォームとして高品質映像の提供 ○ コンテンツ最適化品質構成 a.k.a. Striker ● 社会インフラとして網羅性が高いデバイスカバレッジの提供 ○ カバレッジ優先品質構成 a.k.a. Defender

Slide 36

Slide 36 text

再生クライアントと映像品質構成の組み合わせを設計する 『FIFA ワールドカップ カタール 2022』の映像品質構成 コンテンツ最適化品質構成 a.k.a. Striker カバレッジ優先品質構成 a.k.a. Defender FPS 59.94 29.97 Rate Control Mode V:QVBR/A:VBR V/A:CBR Profile/Level [email protected]/以下Main/4.2 Main/4固定 1080p V:QVBR Max12M(Buf:24M) A:VBR 256k Stereo V:CBR 8M(Buf:自動) A:128k Stereo 720p V:QVBR Max8M(Buf:16M) A:VBR 256k Stereo V:;CBR 4M(Buf:自動) A:128k Stereo 480p V:QVBR Max4M(Buf:8M) A:VBR 256k Stereo V:CBR 2M(Buf:自動) A:128k Stereo 360p V:QVBR Maxim (Buf:4M) A:VBR 256k Stereo V:CBR 1M(Buf:自動) A:128k Stereo 240p V:CBR 0.5M(Buf:自動) A:128k Stereo V:CBR 0.5M(Buf:自動) A:128k Stereo

Slide 37

Slide 37 text

再生クライアントと映像品質構成の組み合わせを設計する デバイスごとのスペックと

Slide 38

Slide 38 text

Striker Defender 再生クライアントと映像品質構成の組み合わせを設計する デバイスごとのスペックとデコード性能のテスト結果を基準に デバイスと品質構成をマッピングする

Slide 39

Slide 39 text

再生クライアントと映像品質構成の組み合わせを設計する デコード性能によって再生する映像品質構成をマッピングする ● iOS / tvOS のメディア処理性能は純粋に高い ○ 基本的に全てのデバイスで Striker を再生する ● Android はデバイスによってデコード性能の差異が大きい ○ MediaCodecInfo.VideoCapabilities の情報を必要条件に 再生エージングテストを通過したものを Striker 許可リストに追加 ● Web Living Standard 仕様準拠のプラットフォームはデコード性能を 確認する手段が限られる ○ Media Capabilities API 等でも適切に判定できる基準値を得ることは難しいため Defender にマッピング

Slide 40

Slide 40 text

再生クライアントと映像品質構成の組み合わせを設計する 配信ストリームのバリエーションのポイント ● ストリーミングプロトコル ● コンテンツ保護形式 ● 映像品質構成 最終的な配信ストリームのバリエーション

Slide 41

Slide 41 text

再生クライアントと映像品質構成の組み合わせを設計する 最終的な配信ストリームのバリエーション HLS Striker FairPlay Streaming HLS Defender FairPlay Streaming HLS Defender Custom DRM (upto SD) MPEG-DASH Striker Widevine MPEG-DASH Defender Widevine iOS app Supports Supports - - - tvOS app Supports Supports - - - Android mobile app - - - Supports (Partially) Supports Android TV / Fire TV app - - - Supports (Partially) Supports Web desktop app on Chrome / Edge - - - - Supports Web desktop app on Safari - - - - Supports Web mobile app on Chrome - - - - Supports Web mobile app on Safari - - - - Supports Nintendo Switch app - - Supports - - Google Cast receiver app - - - - Supports

Slide 42

Slide 42 text

大規模トラフィックを支える 再生クライアントを設計する

Slide 43

Slide 43 text

大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』は世界最高峰のスポーツイベント

Slide 44

Slide 44 text

大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』は世界最高峰のスポーツイベント ABEMA では未踏の大規模トラフィックが集中することが予想される

Slide 45

Slide 45 text

大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』は世界最高峰のスポーツイベント ABEMA では未踏の大規模トラフィックが集中することが予想される 大規模トラフィックを構成するのはメディアデータ

Slide 46

Slide 46 text

大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』は世界最高峰のスポーツイベント ABEMA では未踏の大規模トラフィックが集中することが予想される 大規模トラフィックを構成するのはメディアデータ 再生クライアントが大量にリクエスト

Slide 47

Slide 47 text

大規模トラフィックを支える再生クライアントを設計する 再生クライアントでトラフィック量を制御する ● CDN バランシング ● 解像度制御

Slide 48

Slide 48 text

大規模トラフィックを支える再生クライアントを設計する CDN バランシング ● 日本国内の通信経路を分散させる ● 再生クライアントで 2 種類の CDN に分散 ○ Akamai ○ Amazon CloudFront

Slide 49

Slide 49 text

大規模トラフィックを支える再生クライアントを設計する CDN セレクターは NPAW のソリューションを使用 https://npaw.com/solutions/multi-cdn-switching-for-video-streaming/

Slide 50

Slide 50 text

大規模トラフィックを支える再生クライアントを設計する NPAW CDN Balancer ソリューション ● 2022 NAB Show で目をつけた新ソリューションがキッカケで検討 https://speakerdeck.com/ygoto3/nab-show-2022-report?slide=78

Slide 51

Slide 51 text

大規模トラフィックを支える再生クライアントを設計する NPAW CDN Balancer ソリューション ● 検証の末、目をつけていた Active Switching 自体は採用見送り

Slide 52

Slide 52 text

大規模トラフィックを支える再生クライアントを設計する NPAW CDN Balancer ソリューション ● 検証の末、目をつけていた Active Switching 自体は採用見送り ● しかし、NPAW Video Analytics の大量の再生品質データを利用した バランシングに大きな強み ○ Video Analytics 上の各 CDN に紐づいた再生品質データを CDN のヘルスチェックに使用可能

Slide 53

Slide 53 text

大規模トラフィックを支える再生クライアントを設計する NPAW CDN Balancer ソリューション ● 検証の末、目をつけていた Active Switching 自体は採用見送り ● しかし、NPAW Video Analytics の大量の再生品質データを利用した バランシングに大きな強み ○ Video Analytics 上の各 CDN に紐づいた再生品質データを CDN のヘルスチェックに使用可能 NPAW CDN Balancer ソリューションのうち CDN Selector のみ採用

Slide 54

Slide 54 text

大規模トラフィックを支える再生クライアントを設計する CDN バランサーの機構でマルチリージョンも制御 ● 今回のライブ配信システムは AWS Media Services ベース ● メディアオリジンはクラウド障害に備えて 2 リージョン用意 ○ AWS Tokyo リージョン ○ AWS Seoul リージョン

Slide 55

Slide 55 text

大規模トラフィックを支える再生クライアントを設計する CDN/リージョンのバランシング機構の図 Tokyo Origin Playback module Akamai CloudFront Seoul Origin

Slide 56

Slide 56 text

大規模トラフィックを支える再生クライアントを設計する CDN/リージョンのバランシング機構の図 Tokyo Origin Playback module Akamai CloudFront Seoul Origin この機構を実現する再生クライアントを NPAW CDN Selector を利用して開発する

Slide 57

Slide 57 text

大規模トラフィックを支える再生クライアントを設計する 独自バランサーモジュール w/ NPAW CDN Selector の開発

Slide 58

Slide 58 text

大規模トラフィックを支える再生クライアントを設計する 独自バランサーモジュール w/ NPAW CDN Selector の開発 ● マルチ CDN のバランシング機能

Slide 59

Slide 59 text

大規模トラフィックを支える再生クライアントを設計する マルチ CDN のバランシング機能 ● 重み付きラウンドロビン ○ CDN ごとの帯域状態、価格帯などに合わせた制御 ● 視聴形態によって異なるルールの適用 ○ ライブ再生 ○ 追っかけ再生 ○ オンデマンド再生 ● アングルによって異なるルールの適用 ○ メインアングルとサブアングルでは求められる冗長性や品質観点が異なる

Slide 60

Slide 60 text

大規模トラフィックを支える再生クライアントを設計する 独自バランサーモジュール w/ NPAW CDN Selector の開発 ● マルチ CDN のバランシング機能 ● マルチリージョンのバランシング機能

Slide 61

Slide 61 text

大規模トラフィックを支える再生クライアントを設計する マルチリージョンのバランシング機能 ● 選択的順番でリージョンを切り替える CDN Group A CDN A1 CDN A2 CDN Group B CDN B1 CDN B2 Failure Failure Failure Failure ある CDN で再生が失敗した場合、 CDN に起因した障害かリージョンに起因した障害か判定する術がない → 次に選択する経路は別リージョンに繋げている同一 CDN を選択する

Slide 62

Slide 62 text

大規模トラフィックを支える再生クライアントを設計する 独自バランサーモジュール w/ NPAW CDN Selector の開発 ● マルチ CDN のバランシング機能 ● マルチリージョンのバランシング機能 ● CDN/オリジン/リージョン障害による切替バースト緩和機能

Slide 63

Slide 63 text

大規模トラフィックを支える再生クライアントを設計する CDN/オリジン/リージョン障害による切替バースト緩和機能 想定される切替バースト ● 一方の CDN に障害が発生した場合に、再生クライアントが 一斉に他方の CDN にリクエストを開始する ● 一方のリージョンのメディアオリジン(AWS Elemental MediaLive) もしくはリージョンそのものに障害が発生した場合に、 再生クライアントが一斉に他方のリージョンにリクエストを開始する

Slide 64

Slide 64 text

大規模トラフィックを支える再生クライアントを設計する CDN/リージョンのバランシング機構の図 Tokyo Origin Playback module Seoul Origin NPAW CDN Selector Original Balancer module Akamai CloudFront Akamai CloudFront

Slide 65

Slide 65 text

大規模トラフィックを支える再生クライアントを設計する 最終的な配信ストリームのバリエーション HLS Striker FairPlay Streaming HLS Defender FairPlay Streaming HLS Defender Custom DRM (upto SD) MPEG-DASH Striker Widevine MPEG-DASH Defender Widevine iOS app Supports Supports - - - tvOS app Supports Supports - - - Android mobile app - - - Supports (Partially) Supports Android TV / Fire TV app - - - Supports (Partially) Supports Web desktop app on Chrome / Edge - - - - Supports Web desktop app on Safari - - - - Supports Web mobile app on Chrome - - - - Supports Web mobile app on Safari - - - - Supports Nintendo Switch app - - Supports - - Google Cast receiver app - - - - Supports 再掲

Slide 66

Slide 66 text

最終的な配信ストリームのバリエーション HLS Striker FairPlay Streaming HLS Defender FairPlay Streaming HLS Defender Custom DRM (upto SD) MPEG-DASH Striker Widevine MPEG-DASH Defender Widevine iOS app Supports Supports - - - tvOS app Supports Supports - - - Android mobile app - - - Supports (Partially) Supports Android TV / Fire TV app - - - Supports (Partially) Supports Web desktop app on Chrome / Edge - - - - Supports Web desktop app on Safari - - - - Supports Web mobile app on Chrome - - - - Supports Web mobile app on Safari - - - - Supports Nintendo Switch app - - Supports - - Google Cast receiver app - - - - Supports x4 の配信経路 大規模トラフィックを支える再生クライアントを設計する

Slide 67

Slide 67 text

大規模トラフィックを支える再生クライアントを設計する 解像度制御 ● 任意のタイミングで再生クライアントが取得する解像度を制限 ● 制限をコールしてから数分以内に反映

Slide 68

Slide 68 text

大規模トラフィックを支える再生クライアントを設計する 解像度制御機構の図 Playback module Feature Toggle System Feature Toggle SDK Bucketeer: 再生クライアントに取得させる最大解像度を設定 Bucketeer SDK: 再生クライアントに組み込み、 指定された最大解像度までの動画ストリームを再生。 最大 10 分で反映する設定

Slide 69

Slide 69 text

大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』は世界最高峰のスポーツイベント ABEMA では未踏の大規模トラフィックが集中することが予想される 大規模トラフィックを構成するのはメディアデータ 再掲

Slide 70

Slide 70 text

大規模トラフィックを支える再生クライアントを設計する トラフィック量は大きくないがケアが必要な再生クライアントからの通信

Slide 71

Slide 71 text

大規模トラフィックを支える再生クライアントを設計する トラフィック量は大きくないがケアが必要な再生クライアントからの通信 キャッシュできない、瞬間的に集中する通信

Slide 72

Slide 72 text

大規模トラフィックを支える再生クライアントを設計する トラフィック量は大きくないがケアが必要な再生クライアントからの通信 キャッシュできない、瞬間的に集中する通信 コンテンツ再生認可処理のためのライセンスリクエスト

Slide 73

Slide 73 text

大規模トラフィックを支える再生クライアントを設計する 3 種類のコンテンツ再生認可ライセンス ● Apple FairPlay Streaming (DRM) ● Google Widevine (DRM) ● ABEMA original custom DRM

Slide 74

Slide 74 text

大規模トラフィックを支える再生クライアントを設計する 3 種類のコンテンツ再生認可ライセンス ● Apple FairPlay Streaming (DRM) ● Google Widevine (DRM) ● ABEMA original custom DRM 各々のライセンスサーバーの キャパシティ・プランに合わせた 制御が必要

Slide 75

Slide 75 text

3 種類のコンテンツ再生認可ライセンス ● Apple FairPlay Streaming (DRM) ● Google Widevine (DRM) ● ABEMA original custom DRM 大規模トラフィックを支える再生クライアントを設計する 『FIFA ワールドカップ カタール 2022』 本番開始後の戦いに続く 各々のライセンスサーバーの キャパシティ・プランに合わせた 制御が必要

Slide 76

Slide 76 text

キックオフ 試合展開に合わせて戦術を変える

Slide 77

Slide 77 text

キックオフ 試合展開に合わせて戦術を変える そのままの意味でもあり、比喩でもある イベント期間中は我々開発者にとっても試合だった

Slide 78

Slide 78 text

キックオフ:試合展開に合わせて戦術を変える 試合開始前 CDN バランシングの設定プロファイルを調整

Slide 79

Slide 79 text

キックオフ:試合展開に合わせて戦術を変える イベント期間の初期は実際のトラフィック傾向を確認 試合開始前 CDN バランシングの設定プロファイルを調整

Slide 80

Slide 80 text

キックオフ:試合展開に合わせて戦術を変える 傾向が掴めたら試合ごとに適用プロファイルのパターンを増やす 試合開始前 CDN バランシングの設定プロファイルを調整

Slide 81

Slide 81 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 試合ごとの再生品質指標を個別確認する リアルタイムダッシュボードを用意

Slide 82

Slide 82 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 同時間に 2 試合ある場合は 2 つのダッシュボードを監視

Slide 83

Slide 83 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 一方の試合展開によって視聴者が 他方へ流入するなど相互に影響する 同時間に 2 試合ある場合は 2 つのダッシュボードを監視

Slide 84

Slide 84 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 CDN /リージョンの分散状態を監視

Slide 85

Slide 85 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 CDN /リージョンの分散状態を監視 意図した分散割合から 一定量離れた場合は 手動運用で割合調整

Slide 86

Slide 86 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 時間帯/対戦カードによって デバイス比率が大きく変動

Slide 87

Slide 87 text

キックオフ:試合展開に合わせて戦術を変える 試合中のリアルタイム監視 時間帯/対戦カードによって デバイス比率が大きく変動 割合を占めるデバイスの 画面サイズがトラフィック量に影響

Slide 88

Slide 88 text

キックオフ:試合展開に合わせて戦術を変える 想定外の問題も発生する イベント期間中に監視で発見した問題に毎日対応

Slide 89

Slide 89 text

キックオフ:試合展開に合わせて戦術を変える 例:システム負荷に大きく影響する問題

Slide 90

Slide 90 text

キックオフ:試合展開に合わせて戦術を変える 最初の大きな山場は 11.23 日本対ドイツ戦 ← は日本対ドイツ戦以前 CM 明けごとに Google Widevine ライセンスの リクエストがスパイクする図

Slide 91

Slide 91 text

キックオフ:試合展開に合わせて戦術を変える Google Widevine ライセンススパイク ● Web app で使用していた THEOplayer のシームレスに Period を 切り替える機能を無効にしていたことで Period が切り替わるごとに ライセンスリクエスト発生 ○ useSeamlessPeriodSwitch = 'never' ○ 無効にしていた理由は弊社エンコードの広告間 Period 跨ぎで 発生していた不体裁な映像再生現象に対応するためのワークアラウンド

Slide 92

Slide 92 text

キックオフ:試合展開に合わせて戦術を変える Google Widevine ライセンススパイクを鎮める ● 11.22 - 11.23 の試合中に動画プレイヤーのリプレイスをリリース dash.js https://npaw.com/ THEOplayer

Slide 93

Slide 93 text

キックオフ:試合展開に合わせて戦術を変える イベント期間開始時の動画プレイヤーライブラリ プラットフォーム 動画プレイヤーライブラリ Web app (Desktop / Mobile) THEOplayer HTML5-based TV app dash.js iOS / tvOS app AVPlayer Android app (Mobile / TV) ExoPlayer Nintendo Switch CRI VOD Player Google Cast receiver Cast Application Framework

Slide 94

Slide 94 text

キックオフ:試合展開に合わせて戦術を変える イベント期間開始時の動画プレイヤーライブラリ プラットフォーム 動画プレイヤーライブラリ Web app (Desktop / Mobile) THEOplayer HTML5-based TV app dash.js iOS / tvOS app AVPlayer Android app (Mobile / TV) ExoPlayer Nintendo Switch CRI VOD Player Google Cast receiver Cast Application Framework HTML5-based TV で元々 dash.js を使用 シミュレーター代わりに Web ブラウザ上で 動作検証もできていたので Web app に短時間で適用

Slide 95

Slide 95 text

キックオフ:試合展開に合わせて戦術を変える イベント期間開始時の動画プレイヤーライブラリ プラットフォーム 動画プレイヤーライブラリ Web app (Desktop / Mobile) THEOplayer HTML5-based TV app dash.js iOS / tvOS app AVPlayer Android app (Mobile / TV) ExoPlayer Nintendo Switch CRI VOD Player Google Cast receiver Cast Application Framework THEOplayer は 2 種類の DRM キーシステムを 同一再生セッション内で扱うことができる ※ 要素を差し替えて EME の限界を回避 今回はこの柔軟性をトレードオフにリプレイス

Slide 96

Slide 96 text

キックオフ:試合展開に合わせて戦術を変える Google Widevine ライセンススパイクを鎮める ● 11.22 - 11.23 の試合中に動画プレイヤーのリプレイスをリリース ● この日 4 試合開催: 品質指標を見て dash.js を適用する割合を増加

Slide 97

Slide 97 text

キックオフ:試合展開に合わせて戦術を変える 例:解像度制御機構に影響する問題

Slide 98

Slide 98 text

キックオフ:試合展開に合わせて戦術を変える Web app と HTML5-based TV app の ABR (Adaptive Bitrate) が あるタイミングから意図通りの挙動をしていないことを検知 解像度ごとの視聴数積上グラフ 解像度ごとの視聴数積上グラフ

Slide 99

Slide 99 text

キックオフ:試合展開に合わせて戦術を変える Web app と HTML5-based TV app で使用している dash.js の解像度制御が意図通りに動作していないことが想定される プラットフォーム 動画プレイヤーライブラリ Web app (Desktop / Mobile) dash.js HTML5-based TV app dash.js iOS / tvOS app AVPlayer Android app (Mobile / TV) ExoPlayer Nintendo Switch CRI VOD Player Google Cast receiver Cast Application Framework

Slide 100

Slide 100 text

キックオフ:試合展開に合わせて戦術を変える dash.js では registerCustomCapabilitiesFilter を利用し 解像度制御を行っていた registerCustomCapabilitiesFilter はインメモリのマニフェスト情報から フィルター対象を除去する インメモリのマニフェスト情報から制御対象の Representation がない状態で 抑制した低い解像度から解放した高い解像度に戻す制御に失敗していた

Slide 101

Slide 101 text

キックオフ:試合展開に合わせて戦術を変える dash.js では registerCustomCapabilitiesFilter を利用し 解像度制御を行っていた registerCustomCapabilitiesFilter はインメモリのマニフェスト情報から フィルター対象を除去する インメモリのマニフェスト情報から制御対象の Representation がない状態で 抑制した低い解像度から解放した高い解像度に戻す制御に失敗していた max bitrate 制御による処理に変更 ● 制御対象を解像度指定する機構のため、bitrate/height の組み合わせを インメモリのマニフェストとは別途保持 ● 1 つの解像度に対して複数の bitrate ターゲットのエンコードを 持たない構成だったことが幸いした

Slide 102

Slide 102 text

キックオフ:試合展開に合わせて戦術を変える 例:CDN バランシングに影響する問題

Slide 103

Slide 103 text

キックオフ:試合展開に合わせて戦術を変える イベント期間が開始し、数試合を終えた後の試合開始時に CDN バランシングが 大きく崩れる現象を検知 特定の CDN に顕著に偏っている

Slide 104

Slide 104 text

キックオフ:試合展開に合わせて戦術を変える 状況 ● NPAW CDN Selector は NPAW Video Analytics で記録した 再生品質指標のデータからを CDN のヘルスチェックしている ● NPAW Video Analytics 再生品質指標データから CTV デバイスが試合途 中や試合終了時にそのままの画面で電源オフされ、 次の起動時に再生エラーから開始していることを確認 ● NPAW CDN Selector はその再生エラー率の上昇を確認し、 CDN の選択比率を調整

Slide 105

Slide 105 text

キックオフ:試合展開に合わせて戦術を変える 状況 ● NPAW CDN Selector は NPAW Video Analytics で記録した再生品質指標 のデータからを CDN のヘルスチェックしている ● NPAW Video Analytics 再生品質指標データから CTV デバイスが試合途 中や試合終了時にそのままの画面で電源オフされ、次の起動時に再生エ ラーから開始していることを確認 ● NPAW CDN Selector はその再生エラー率の上昇を確認し、CDN の選択 比率を調整 NPAW CDN Selector の再生品質指標に最適化した CDN 選択機能をオフ 独自 CDN バランシングモジュールが 各 CDN の再生状態を基準に選択を調整する戦術に変更

Slide 106

Slide 106 text

キックオフ:試合展開に合わせて戦術を変える 例:システムの不具合に起因する問題

Slide 107

Slide 107 text

キックオフ:試合展開に合わせて戦術を変える Chromecast の再生セッション数の急激な変化を検知 離脱するにしても 不自然な同時多発 同時間にIn-Stream Error % の 上昇を確認

Slide 108

Slide 108 text

キックオフ:試合展開に合わせて戦術を変える Chromecast の再生セッション数の急激な変化を検知 SSAI するメディアサーバーが 取得した広告情報(VAST)に 不備を発見 00:00:15 <..> <..> <..> .. 情報を元に生成したマニフェストを Cast Application Framework は 不当なものと判定し離脱

Slide 109

Slide 109 text

キックオフ:試合展開に合わせて戦術を変える 00:00:15 <..> <..> <..> .. 修正し、即反映 Chromecast の再生セッション数の急激な変化を検知 SSAI するメディアサーバーが 取得した広告情報(VAST)に 不備を発見 情報を元に生成したマニフェストを Cast Application Framework は 不当なものと判定し離脱

Slide 110

Slide 110 text

キックオフ:試合展開に合わせて戦術を変える 例:特定デバイスの挙動に依存した根本解決が難しい問題

Slide 111

Slide 111 text

キックオフ:試合展開に合わせて戦術を変える Fire TV Stick 4K Max の In-Stream Error % が顕著に高いことを検知 Fire TV Stick 4K Max は ハイスペックモデルなので、 他モデルと比較してエラー率が 高いことに違和感

Slide 112

Slide 112 text

キックオフ:試合展開に合わせて戦術を変える Fire TV Stick 4K Max の In-Stream Error % が顕著に高いことを検知 再生状態でディスプレイを切ると、 Fire TV Stick 4K Max では マニフェスト内のセグメント位置が徐々に減少し、最終的に負の値となる Fire TV Stick 4K Max ではディスプレイが切られた場合に再生速度が遅くなる

Slide 113

Slide 113 text

キックオフ:試合展開に合わせて戦術を変える Fire TV Stick 4K Max の In-Stream Error % が顕著に高いことを検知 同一ユーザーが一定間隔で BehindLiveWindowException の In-Stream Error を記録して 再生セッションの終了を確認 Fire OS はディスプレイ電源の ON/OFF を ACTION_HDMI_AUDIO_PLUG イベントで 判定し対処できるが、 再生速度が遅くなる挙動の原因は不明のまま

Slide 114

Slide 114 text

FIFA ワールドカップ カタール 2022 を経た次の再生品質制御を考える

Slide 115

Slide 115 text

FIFA ワールドカップ カタール 2022 を経た次の再生品質制御を考える ABEMA では未踏規模だったイベントを経て ● 従来は提供することができなかった高品質の映像を 届けることができるようになった ● 新しい動画システムの挑戦において可視化された再生品質指標は 進んでいる方向が正しいか判断する材料

Slide 116

Slide 116 text

FIFA ワールドカップ カタール 2022 を経た次の再生品質制御を考える ABEMA では未踏規模だったイベントを経て ● 従来は提供することができなかった高品質の映像を 届けることができるようになった ● 新しい動画システムの挑戦において可視化された再生品質指標は 進んでいる方向が正しいか判断する材料 同時に、現状の再生品質制御が 人によるリアルタイム監視に助けられている部分の広さを確認できた

Slide 117

Slide 117 text

FIFA ワールドカップ カタール 2022 を経た次の再生品質制御を考える 現時点の再生品質制御システムに足りないもの ● 特定 ISP や地域条件などに絞った品質監視 ● 不体裁な不具合の Video Quality MOS (Mean Opinion Score) のような主観品 質指標シミュレーションによる自動検知

Slide 118

Slide 118 text

FIFA ワールドカップ カタール 2022 を経た次の再生品質制御を考える 現時点の再生品質制御システムに足りないもの ● 特定 ISP や地域条件などに絞った品質監視 ● 不体裁な不具合の Video Quality MOS (Mean Opinion Score) のような主観品 質指標シミュレーションによる自動検知 現在 ABEMA で開発中の合成監視システムの精度を上げることで 次の再生品質制御レベルに達成することを狙っている

Slide 119

Slide 119 text

No content