🥬

【初心者向け】HLS(HTTP Live Streaming)ってなあに

に公開

HLS形式とは

  • HTTP Live Streamingの略
  • 動画の配信形式

ファイル構成

  • m3u8ファイル(.m3u8)
    • 読み方不明です。えむさんゆーはちファイルと呼んでいます。。
    • どの順番でセグメントファイルを再生するかが書かれている、プレイリストのようなもの。
  • セグメントファイル(.ts)
    • 数秒単位で細切れにした動画ファイル

m3u8ファイル

プレイリストに従って、順番にセグメントファイルを取得し、再生していきます。

playlist.m3u8
// メタ情報
#EXTM3U          // 宣言
#EXT-X-VERSION:3     // バージョン
#EXT-X-TARGETDURATION:13  // 各セグメントの最大継続時間
#EXT-X-MEDIA-SEQUENCE:0   // 最初のセグメントの番号

// 以下プレイリスト
#EXTINF:12.387,  // tsファイルの再生時間
media_0.ts       // tsファイル
#EXTINF:2.653,
media_1.ts
#EXTINF:3.663,
media_2.ts
....

....
#EXT-X-ENDLIST   // 終了を示す

変換

一般的な動画ファイル(mp4など)からHLS形式配信用のファイルへ変換が必要となります。
FFmpegというツールで動画の変換が可能です。
また、動画配信系のCDNサービスによっては、mp4をアップロードするとHLS形式に変換してくれる機能が提供されていることもあります。

プレイヤー

<video>タグに設定するだけでは、再生できず、専用プレイヤーが必要です。方法としては2つ考えられます↓↓

少し調べたところ、safariでは<video>タグで再生ができるようです。。(知らなかった、試してはいない)Safari専用サービスなら、プレイヤー開発の手間が不要そうですね。

他機能

詳しく調べたら別の記事にしようと思います。これらの機能がHLS形式のメリットと思われます!!(多分)

  • セグメントファイルの暗号化
  • 複数のビットレートへの対応

参照

Discussion