HLS と DASH の違い:動画配信プロトコルの仕組み

ストリーミングが登場する前、オンラインで動画を見るには、ファイル全体をダウンロードしてから再生するしかありませんでした。最初の 30 秒だけ見たい場合でも、500 MB の動画をすべて端末に取り込む必要があったのです。動画配信プロトコルは、まさにこの問題を解決します。動画を小さな断片に分け、残りをダウンロードしながら再生します。

セグメント化:ストリーミングの基本単位

最も広く使われている HLS(HTTP Live Streaming、Apple が開発)を例にすると、サーバーは動画全体をセグメントと呼ばれる多数の小さなファイルに分割します。通常は 2〜10 秒程度の長さで、MPEG-TS または fMP4 形式に格納されます。同時に、セグメントの順序と取得先を記録したプレイリストファイル(.m3u8)も生成します。プレーヤーはまずプレイリストを取得し、必要に応じてセグメントをダウンロードします。ひとつを再生し終える前に次を取得するため、ほとんど待たずに視聴できます。

オンライン動画プレーヤー

アダプティブビットレート:回線が弱くても再生が止まりにくい理由

HLS と DASH(Dynamic Adaptive Streaming over HTTP、Microsoft などが推進)は、同じ動画について解像度とビットレートの異なる複数のセグメント群を用意します。たとえば 1080p、720p、480p の各セットをマスタープレイリストに記載します。プレーヤーはダウンロード速度とバッファの残量をリアルタイムで監視し、回線が良好なら高いビットレートに、悪化すれば低いビットレートに切り替えて再生を維持します。これがアダプティブビットレートストリーミング(ABR)です。地下鉄で動画の画質が自動的に落ちるのも、この仕組みによるものです。

m3u8 のリンクをダウンロードするだけではうまくいかない理由

.m3u8 の URL を直接ダウンロードしても、得られるのは数 KB のテキスト、つまりプレイリストだけで、動画そのものではありません。実際に動画を保存するには、ツールがプレイリストを解析し、すべてのセグメントをダウンロードして正しい順序で結合する必要があります。多くのダウンローダーが HLS 動画に対応していなかったり、別途「セグメントを結合」する操作を必要としたりするのはこのためです。TakeVid にはセグメントの検出と自動結合が組み込まれているので、再生可能な完成済みのファイルとしてダウンロードできます。

M3U8 ダウンローダー

  • HLS:Apple が開発。.m3u8 プレイリストを使用し、iOS と Safari が標準で対応しています。ライブ配信とオンデマンド配信の両方に使われます。
  • DASH:.mpd マニフェストを使うオープン標準で、YouTube や Netflix などが大規模に採用しています。
  • どちらも通常の HTTP を利用し、CDN と相性がよく、現在の動画配信の主流となっています。

DASH ダウンローダー

記事一覧に戻る