HLSとは?:ストリーミング配信を実現する技術

HLSという単語を耳にしたけど何のことかわからないという方や、ストリーミング配信を実現する技術とは聞いているけど具体的にどのようなものかわからないという方は、それなりにいらっしゃるのではないかと思います。

今回はHLSについて、どういったものなのか、どのような仕組みになっているのかを簡単に解説したいと思います。

HLSの概要

ざっくり書いてしまうと、HLSとは以下のようなインターネット動画配信の技術となります。

  • HTTP Live Streamingの略
  • 高いコストをかけずにストリーミング配信ができる配信技術
  • マルチビットレート(アダプティブビットレート)に対応
  • 様々なOS・ブラウザで再生可能
  • ライブ配信にも対応できる

以下より詳しく解説します。

技術解説(どのようなものか)

以下より、具体的な技術解説となります。

基本的なしくみ

  • H.264+AACなどでできている動画ファイルを10秒ぐらいずつに細切れにしておく(.ts、というファイル)。
    • 1分の動画であれば、10秒×6本に分割。
  • 細切れのファイルをどういった順番で再生させるかが記述されているインデックスファイルをつくる(.m3u8、というファイル)。
  • 再生に対応したブラウザやアプリケーションでインデックスファイルを読み込んで再生を開始する。
  • 再生にあたっては、インデックスファイルに記載されている、細切れになった動画ファイル(.ts)を順番にサーバーから読み込む
  • 動画の途中から再生する場合は、該当する時間のtsファイルをダウンロードして再生する。

HLS配信の動画を構成するファイルをWindowsなどで見た場合。

マルチビットレートを行う場合

よくある「画質の高中低」、がこれにあたります。
画質ごとにビットレートを変えた動画を準備して、それを切り替えることで画質切り替えを実現します。

また、回線の通信速度にあわせてそれを自動的に行うことを「アダプティブビットレート」と呼びます。

  • あらかじめいくつかのビットレートでエンコードしたtsファイル群を準備しておくことで、マルチビットレートを実現できる。
    • 1つの動画に対して、複数のビットレート別の動画を準備することになる。
    • 画質高・中・低であれば、3つのビットレートの動画を準備する。
  • マルチビットレートの場合m3u8が枝分かれする
    • 最初に読まれるm3u8で、ビットレート別のm3u8を指定。
    • 枝分かれしたビットレートごとのm3u8が実際のインデックスファイル。
  • 通信状況が悪ければ、再生リストの途中でよりビットレートが低いtsファイルをダウンロードして再生する(アダプティブビットレート)。
  • 同様に通信状況が改善すれば、ビットレートが高いtsファイルをダウンロードして再生する。

メリット・デメリット

HLSで配信を行うことのメリット、デメリットを簡単にまとめてみました。

メリット

  • ローコストにストリーミング配信が実現できる。
  • 同、ローコストにアダプティブビットレート配信が実現できる
  • 幅広い端末で再生ができる。
  • ライブ配信もそれなりに手軽に実現できる。

デメリット

  • ローコストとはいえ、プログレッシブダウンロードよりは導入にコストがかかる。
  • アダプティブビットレートを実現させるためには、複数のビットレートのファイルを準備するため、動画を保存するために必要な容量が増える。
  • 多数のファイル群で構成されるため、何らかのソフトウェアを使わないと、管理が難しい。
  • ライブ配信の場合、遅延時間が長い。