HLSEncodingStorage

アダプティブビットレートのラダー解説:360pから4Kとディスク容量

アダプティブビットレート配信が画質を選ぶ仕組み、UFOLOADのコンバーターが実際に生成する画質段階とビットレート、各段階が1時間あたりに消費するディスク容量を解説します。

アダプティブビットレートのラダー(画質の段階構成)とは、ストリーミングプレーヤーが選択できる動画バージョンの集合です。各段階には解像度とビットレートがあり、プレーヤーはいずれかの段階から再生を始め、セグメントのダウンロード速度を見ながら、回線状況の変化に応じて段階を上げ下げします。ラダーが適切なら、電車内の視聴者も4Kテレビの視聴者も、1回のアップロードからスムーズに再生できます。不適切だと、誰も使わない段階にディスクと帯域を浪費するか、低速回線の視聴者をローディング表示のまま待たせることになります。

この記事ではラダーの仕組みを説明したうえで、UFOLOADのコンバーターが実際に生成するラダーを、コンバーター自体から取得したビットレートとともに紹介し、各段階が動画1時間あたりにどれだけのディスク容量を使うかを示します。

プレーヤーが段階を選ぶ仕組み

HLSストリームのマスタープレイリストには、すべての段階が重要な3つの属性とともに記載されています:BANDWIDTH、RESOLUTION、CODECSです。プレーヤーは直近数セグメントのダウンロード速度を計測し、BANDWIDTH がその速度に余裕をもって収まる最も高い段階を選びます。知っておくべきポイントが2つあります。

1つ目に、BANDWIDTH は平均値ではなくピーク値です。プレイリストがこれを過小に記載すると、プレーヤーは回線で維持できない段階を選んでしまい、再生が止まります。そのため当社のコンバーターはピーク値を書き込み、0を書くことはありません。2つ目に、段階の切り替えはセグメントの境界で行われます。当社のセグメント長は4秒で、エンコーダーは各セグメントの先頭にキーフレームを置くため、プレーヤーは途切れることなく画質を切り替えられます。セグメントを短くすると反応は速くなりますがリクエスト数が増えます。4秒は一般的な妥協点です。

このようなストリームを自分のページに載せたい場合は、HLS動画を埋め込む方法でiframeとhls.jsの選択肢を紹介しています。

UFOLOADのラダー

コンバーターの段階は2160p(4K)、1080p、720p、360pの4つです。段階は元動画の高さがその値以上の場合にのみ生成されます。アップスケールしてもディテールは増えず、容量とエンコード時間が膨らむだけだからです。720pの元動画からは720pと360pが生成され、360p未満の元動画からはそのサイズのまま1つのバージョンが生成されるため、どのファイルにも少なくとも1つの再生可能なバージョンがあります。横幅は元動画のアスペクト比に従い偶数に丸められます。4:2:0クロマのH.264では奇数のサイズをエンコードできないためです。下表の横幅は16:9を前提としています。

UFOLOADコンバーターの段階(H.264 Highプロファイル、AACステレオ)
段階16:9でのフレーム映像の上限品質目標(CRF)音声1時間あたりのピーク容量
2160p3840x216016 Mbit/s20192 kbit/s6.79 GiB
1080p1920x10805 Mbit/s22160 kbit/s2.16 GiB
720p1280x7202.8 Mbit/s23128 kbit/s1.23 GiB
360p640x3600.8 Mbit/s2664 kbit/s0.36 GiB

デフォルトのプリセットはmediumで、各段階のビットレートは一般的なH.264コンテンツ向けに選ばれています。1080pの段階は5 Mbit/sが上限です。これできれいな映像には十分で、それ以上にしてもファイルが大きくなるだけで見た目の向上はありません。4Kは1080pの4倍の画素数があるため、複雑なシーンでブロックノイズが出ないよう、上限は3倍以上の16 Mbit/sにしています。

コンバーターは480pや240pを生成しません。段階が少ないほどディスク使用量が減りエンコードも短くなります。また360pと720pの間でも、低速なモバイル回線向けの妥当なステップがプレーヤーに残ります。実際にどの段階が得られるかはプランにも左右されます。360pと720pが基本で、最上位の段階はプランの上限によって制限されます。上限は料金ページに掲載しています。Freeプランでは動画は単一画質になります。

CRFとビットレート上限:ファイルサイズが上限値である理由

エンコーダーは固定ビットレートを目標にしていません。目標は一定の品質で、CRF(constant rate factor)で表されます。数値が低いほど映像はきれいになり、ファイルは大きくなります。静止した話し手の映像は目標品質を少ないデータで達成できますが、アクションシーンには大量のデータが必要です。1つのシーンが低速回線をあふれさせないよう、各段階には表のビットレートと同じ maxrate と、その2倍のバッファーも設定しています。その結果、ストリームは通常は上限を下回り、上限を長く超えることはありません。

この記事のサイズがピーク値なのはそのためです。講義や画面録画は通常、それを大きく下回ります。会話中心のコンテンツは上限の数分の一程度で済むこともあり、動きの激しいスポーツやノイズの多い映像は上限に近づきます。ライブラリの容量を見積もる際は、安全な予算にはピーク値を、現実的な予算には実測した平均値を使ってください。

エンコードスタジオの品質プロファイルでこのバランスを変えられます。fastプロファイルはより高速なx264プリセットを使い、ファイルはやや大きくなる代わりに動画の準備が早く整います。qualityプロファイルはより低速なプリセットと低めのCRFでよりきれいな映像を得られ、有料プランで利用できます。デフォルトのbalancedはその中間です。

ラダーが消費するディスク容量

各段階のピークで動画1時間あたりの容量は、2160pで6.79 GiB、1080pで2.16 GiB、720pで1.23 GiB、360pで0.36 GiBです。フルラダーは元動画が許す段階の合計で、各段階はディスク上の個別のファイルになります:

元動画の解像度生成される段階動画1時間あたりのピーク容量
4K(2160p)2160p、1080p、720p、360p10.54 GiB
フルHD(1080p)1080p、720p、360p3.75 GiB
HD(720p)720p、360p1.59 GiB
360p未満元のサイズで1バージョン元動画による

具体例:フルHD映像100時間からは、最大で約375 GiBの変換済みファイルが生成されます。最上位の段階を720pに制限すると、同じ100時間で必要なのは最大約159 GiBとなり、半分以上削減できます。費用を大きく左右するのは最上位の段階です。4K素材のライブラリから4Kをなくすと、容量のおよそ3分の2が減ります。これらの変換済みファイルがストレージ容量にカウントされるかどうかはホスティング事業者によって異なり、動画ホスティングの費用で解説しています。UFOLOADでは、容量はアップロードしたファイルのサイズでカウントされます。

エンコードスタジオでのラダー調整

デフォルトのままにする必要はありません。ダッシュボードのエンコードスタジオには、保存する段階の数を変える設定が3つあります:

  • 最大解像度。 動画がこの値を超えてエンコードされることはありません。プランの上限を超える解像度はロックされています。
  • 最低画質。 最下位の段階として360p、720p、1080pのいずれかを選びます。引き上げると小さい段階がなくなり、ディスクとエンコード時間を節約できますが、弱い回線の視聴者は代替手段を失います。モバイルユーザーが含まれるなら360pを残してください。
  • クイックプリセット。 最高画質、バランス、ストレージ節約(720pまでで必要な画質のみ)、そして対象アカウント向けの即時公開。

変更は新しいアップロードに適用されます。すでにライブラリにある動画に適用するには再エンコード操作を使います。新しい動画から順にまとめて処理し、実行の間にはクールダウンがあります。再エンコード中も動画は再生可能です。

独自のラダーを構築する場合

  • 隣り合う段階のビットレート差はおよそ1.5〜2倍にします。差が小さすぎると見た目の効果がないままストレージが増え、大きすぎると画質の切り替わりが目立ちます。
  • 現実的に想定される最も遅い視聴者に合わせて、十分低い段階から始めます。誰も維持できない段階は無駄になり、最下位の段階がなければローディング表示が続きます。
  • キーフレームをセグメント長に揃え、プレイリストにはピークビットレートを記載します。
  • アップスケールはしません。各段階は元動画の高さを上限にします。
  • 1か月後に視聴者が実際に使っている段階を計測し、一度も再生されない段階は削除します。

アップロード形式から配信までのパイプライン全体は機能ページを、プランの上限と価格は料金をご覧ください。まだ比較検討中なら、動画ホスティングのチェックリストで、どの事業者にも確認すべきエンコードと画質に関する質問をまとめています。

無料アカウントで試してみる

動画をアップロードすれば、数分でHLSプレーヤーとAPIキーが手に入ります。プランごとの上限は料金ページに掲載しています。