アダプティブビットレートストリーミング(ABR) — その意味とプレイヤーの判断

アダプティブビットレートストリーミング(ABR)

アダプティブビットレートストリーミングは、1本の動画を複数の解像度・ビットレートで同時にエンコードし、現在のネットワーク状況に最適なバリアントをプレイヤーが選ぶ手法です。画質の切り替えはセグメント境界で発生し、視聴者にはほぼ気づかれません。

ABRが解決する問題

2010年代以前、動画は固定ビットレートの単一ファイルとして配信されていました。回線が遅ければバッファリングが続き、光回線でも他人と同じ低画質を見ることになりました。どちらにせよミスマッチでした。

ABRはこれを解消します。エンコーダーは360p / 540p / 720p / 1080p / 4Kといったラダー状のバリアントを生成し、プレイヤーは実際の帯域に合うものを選択します。帯域が変わると(モバイルでトンネルに入るなど)、プレイヤーは下のバリアントへ落とし、後で戻します。

プレイヤーの判断方法

  1. プレイヤーがマスタープレイリストを取得し、全バリアントと帯域要件を読み取ります。
  2. 最初のセグメントのダウンロード時間を計測します。
  3. スループット(帯域)を算出します。
  4. 持続的なスループットが次の上位バリアントの帯域要件を余裕をもって超えれば、次のセグメント境界で上に切り替えます。
  5. セグメントのダウンロードが詰まる、またはバッファが閾値以下になれば即座に下に切り替えます。

この判断ロジックはABRロジックと呼ばれることがあり、プレイヤー(HLS.js、Shaka Player、ExoPlayer、AVPlayer)ごとにヒューリスティックが異なります。

なぜ今やこれが標準なのか

  • モバイルの帯域は変動する — 走行中、エレベーター内、地下
  • ネットワークの共有 — 同居人が視聴中にダウンロードを始める
  • CDNエッジの変動 — エッジごとにアップリンクが異なる
  • 離脱の防止 — バッファリング1回ごとに視聴者を失う

ABRと暗号化

暗号化(AES-128)はセグメント単位で適用されるため、ABRからは透過的です。プレイヤーがバリアントを切り替えても、同じ鍵配送機構で新バリアントのセグメントを復号できます。AVCaptionはバッチごとに鍵をローテーションし、バリアント切替をまたいでもシームレスに動きます。

関連項目

← content.back_to_index