ライブストリーミングにおける動画レイテンシー
ライブ動画ストリーミングにおけるレイテンシーとは
サッカーの試合をオーバーザトップ (OTT) ストリーミングサービスで観ているとします。一方、隣に住む人は同じ試合を従来のテレビで観ています。隣に住む人がゴールに歓声を上げ、ペナルティに頭を抱えている間、あなたはそれを視聴するのに 30 秒間待たなくてはなりません。
生放送のスター発掘番組を観ている場合はどうでしょうか。勝者の発表に期待が高まる中、発表を見る 15 秒前にソーシャルメディアへのフィードが出ると (通常はテレビの視聴者によって生成されます)、驚きが失われてしまいます。
視聴者にとって動画レイテンシーにおける大きな問題は、物事が起こった後の時点を観るというストレスです。動画レイテンシーに対する視聴者のストレスは、やがてコンテンツプロバイダーにとっての動画レイテンシーにおける問題となります。
テレビのスポーツ番組、ゲーム、ニュース、あるいは e スポーツや視聴者参加型番組といった純粋な OTT コンテンツなど、タイムリーであることが重要な動画コンテンツの場合、視聴者は物事の展開と同時進行で観たいという期待を抱いています。リアルタイムなエンターテインメントの世界では、動画レイテンシーの問題は驚きを失わせるだけにとどまりません。問題が解消されなければ、OTT コンテンツプロバイダーに対する視聴者の信頼を損うことになります。
動画レイテンシーが生じる原因は カメラからディスプレイまでさまざま
動画配信プロセスにおける数々のステップが、動画レイテンシーに影響を与えます。
- 動画のエンコードパイプラインの継続時間
- 取り込みおよびパッケージ化操作
- ネットワーク伝播とトランスポートプロトコル
- コンテンツ配信ネットワーク (CDN)
- セグメント長
- プレイヤーポリシー
動画レイテンシーの測定方法
さまざまな方法がありますが、エンドツーエンドの動画レイテンシーを測定する最も簡単な方法は以下のとおりです。
- カチンコアプリケーションを起動しているタブレットを使用します。
- ビデオエンコーダーに接続したカメラで撮影します。
- ビデオストリームをオリジンにパブリッシュします。
- CDN を通じてプレイヤーに配信します。
- プレイヤーをカチンコタブレットの横に置きます。
- 2 つの画面の写真を撮ります。
- タイムコード減算を実施し、値を求めます。
ライブストリーミングにおいて動画レイテンシーを最小限に抑える方法
コンテンツプロバイダーにとっての懸念事項は、こうしたテレビ放送やソーシャルメディアにおける OTT 動画レイテンシーの遅延だけではありません。低レイテンシーを実現するために検討すべき問題が他にもいくつかあります。
Flash と RTMP (Real-Time Messaging Protocol): RTMP ストリーミングを使用した Flash ベースのアプリケーションは低レイテンシーの実現に効果的でしたが、Flash の廃止に伴い、ウェブブラウザでは Flash プラグインのサポートを徐々に減らすか、ブロックしており、コンテンツ配信ネットワーク (CDN) でも RTMP の廃止を開始しています (配信側でまだ小規模)。これにより、コンテンツプロバイダーは代替策を講じることを余儀なくされています。
拡張性/信頼性と低レイテンシー: 拡張性の問題を解決する 1 つの方法としては、HTTP ライブストリーミング (HLS)、Dynamic Adaptive Streaming over HTTP (DASH または MPEG-DASH)、Common Media Application Format (CMAF) などの HTML5 対応ストリーミング技術への切り替えがあります。
こうしたストリーミング技術では HTTP で配信が行われるため、配信がキャッシュ可能で、CDN ではより効率的に多くのコンテンツを配信できます。
しかし、拡張性と信頼性の両方が実現すると、エンドツーエンドの配信時間が数十秒長くなり、低レイテンシーに不利に働きます。
インタラクティブ機能: 他のコンテンツプロバイダーではインタラクティブ機能を使用してパーソナルブロードキャストサービスを展開することもできますが、通常こうしたユースケースで動画信号の遅延は許容できません。
理由としては、動画がカメラで最初にキャプチャされる時点から表示される時点まで最大 30 秒間遅延した場合、リアルタイムフィードバックを必要とする双方向性が実現不可能となるためです。
また、同期したセカンドスクリーン、ソーシャルウォッチング、ゲーム、またはギャンブルアプリケーションを開発する場合は、動画ストリーミングのレイテンシーをきめ細かなレベルで制御する必要があります。
ライブストリーミングにおける最適な動画レイテンシーのスイートスポット
動画レイテンシーは 3 つの異なるカテゴリで表示でき、それぞれ上限と下限が定義されています。
動画レイテンシーの階層
上限 (秒) | 下限 (秒) | |
---|---|---|
短縮レイテンシー | 18 | 6 |
低レイテンシー | 6 | 2 |
超低レイテンシー | 2 | 0.2 |
ただし、説明が少し難しい場合、短縮動画レイテンシー、低動画レイテンシー、超低動画レイテンシーがブロードキャスト動画レイテンシーと異なる点という点は知っておく必要があります。
6 秒のブロードキャスト動画レイテンシーはこの分野では平均的であるため、OTT 動画レイテンシーのスイートスポットは短縮動画レイテンシーカテゴリの低域、または低レイテンシーカテゴリの高域にあります。5 秒に近づくと、ブロードキャストおよびソーシャルネットワークフィードと競合する可能性が最大になります。
また、コンテンツ準備ワークフローにおける OTT ビデオエンコーダーの位置に応じて、エンコーダーがワークフローの下流に位置するほど、レイテンシーを短縮する目的が高まります。
ライブストリーミングアプリケーションで低レイテンシー動画を実現するためのベストプラクティス
お使いの動画ストリーミングソリューションを低レイテンシーカテゴリに分類するために行える主なアクションの概要は、以下のとおりです。
- ワークフローのすべてのステップで動画レイテンシーを測定する
- 動画のエンコードパイプラインを最適化する
- 要件に合った適切なセグメント期間を選択する
- 適切なアーキテクチャを構築する
- ビデオプレイヤーを最適化または交換する
動画のパッケージ化に最適なセグメントサイズの選択方法
選択するセグメント期間は、ほぼすべてのプレイヤーの動画レイテンシーに対して機械的効果を及ぼします。例えば、1 秒間のセグメントで 5 秒のレイテンシーを実現できます。2 秒間のセグメントを選択すると、プレイヤーの設定を最適化しない限り、結果として 7~10 秒の動画レイテンシーが生じます。
原則は、要件に合わせた「適切なサイズ」にすることです。そのため、7 秒以下の動画レイテンシーが重要とはならない場合は、2 秒のセグメントを選択してください。
現在のプレイヤーで 2 秒のセグメントが使用されている場合は、GOP 長を 1 秒から 2 秒に上げて、固定ビットレートにおけるエンコード品質を向上させてください。
また、取り込みフォーマットとして HLS を使用する場合は、取り込み時に 2 秒のセグメントを用いることで、オリジンストレージやパッケージ化計算への負荷を軽減できます。
動画レイテンシーに関する豆知識とヒント
- ライブストリーミングにおける動画レイテンシーは克服できない問題ではない。いくらかの努力で最小限に抑えることができる
- 標準の HLS および DASH 技術によって、HTTP でのスケーラブルな低レイテンシーが実現する
- 現在のライブストリーミングにおける動画レイテンシーの標準は、10 秒未満
- 業務で必要とされる場合、現在では安定した 4~5 秒の動画レイテンシーが実現可能
- チャンクに分割された CMAF のエコシステムによって、安定した 4 秒未満の動画レイテンシーが達成されつつあり、間もなく実現される
低レイテンシーのライブ動画ストリーミングのデモ
この AWS Elemental MediaStore のデモでは、標準の HLS または DASH プロトコルを使用して、予測可能で安定した低レイテンシーの動画ストリーミングを実現する方法を説明します。また、AWS と統合されているクラウド動画オリジネーションとストレージの高性能な機能について説明します。