HLS.m3u8.ts.m4s

HTTP Live Streaming / エイチエルエス

映像を数秒ごとの小さなファイルに分け、再生リスト(m3u8)と一緒に普通のWebサーバーから配る配信方式です。Appleが開発し、iPhoneのSafariが標準で再生できることから、ライブ配信や見逃し配信で広く使われています。

開発
Apple
仕様書
IETF RFC 8216(第2版を策定中)
再生リスト
m3u8(MIMEタイプ application/vnd.apple.mpegurl)
セグメントの形式
MPEG-2 TS、fMP4(CMAF)
字幕
WebVTT、IMSC1(fMP4)、映像に埋め込んだCEA-608
セグメントの長さの目安
6秒(Apple の HLS オーサリング仕様の推奨)
標準で再生できる環境
Safari(iPhone・iPad・Mac)、Apple TV。ほかのブラウザは hls.js などを組み込んで再生

ライブ配信の設定画面や配信サービスの仕様書で「HLSで出力」と書かれていても、何を指しているのか分かりにくいものです。HLSは映像を数秒ずつのファイルに切り分けて、Webページの画像と同じように普通のHTTPで配る方式です。特別な配信サーバーがなくても、CDNを使って大人数に届けられます。

HLSが使われる場面

見逃し配信や動画配信サービス、スポーツや音楽のライブ配信など、スマホで見る映像の多くがHLSで届いています。iPhoneとiPadのSafariや、iOSアプリの標準の再生機能(AVPlayer)がHLSをそのまま再生できるため、iOS向けに配信するならHLSを用意するのが一般的です。

放送局のネット同時配信では、ライブのエンコーダーが放送と同じ映像を受け取り、HLSに変換してCDNへ送ります。AWS Elemental MediaLiveとMediaPackageの組み合わせや、Wowza Streaming Engineなどが変換と配信の役割を担います。エンコーダーからサーバーへはRTMPやSRTで送り、視聴者にはHLSで届けるという分担がよく見られます。

HLSの仕組み

エンコーダーは映像を数秒ごとのセグメントに分け、その一覧をm3u8の再生リストに書きます。プレーヤーは再生リストを読み、書かれた順にセグメントをダウンロードして再生します。ライブでは再生リストが定期的に更新され、プレーヤーは読み直して新しいセグメントを取りに行きます。

回線の速さに合わせて画質を切り替えるABRも、HLSの基本の機能です。1080p、720p、480pのように複数の画質を用意し、それぞれの再生リストをまとめた親の再生リスト(マルチバリアントプレイリスト)を置きます。プレーヤーは通信の状況を見て、途中で画質を上げ下げします。

セグメントの形式は、当初はMPEG-2 TSだけでしたが、現在はfMP4も使えます。fMP4を使えば、MPEG-DASHと同じセグメントを共有するCMAFの運用ができます。

HLSの遅延と設定で間違えやすい点

通常のHLSでは、遅延が数十秒になることがあります。プレーヤーはライブの端から少なくとも3セグメント分さかのぼって再生を始めるため、6秒のセグメントなら20秒近くの遅れが出ます。セグメントを2秒程度に短くすると遅延は減りますが、ファイル数とリクエストが増え、CDNの負荷や再生の途切れが起きやすくなります。遅延を数秒まで縮めたい場合は、LL-HLSを検討します。

もう一つ間違えやすいのは、キーフレームの間隔です。セグメントはキーフレームの位置でしか切れないので、エンコーダーのGOPがセグメントの長さと合っていないと、セグメントの長さがばらつき、画質の切り替えで映像が乱れます。2秒のGOPで6秒のセグメント、のように割り切れる値にそろえます。

よくある質問

HLSはChromeやEdgeで再生できますか

多くの環境で、ページにhls.jsなどのJavaScriptのプレーヤーを組み込めば再生できます。ブラウザのMedia Source Extensionsを使ってセグメントを読み込む仕組みです。Safariはプレーヤーを組み込まなくても標準で再生できます。

HLSとMPEG-DASHの違いは何ですか

どちらもセグメントに分けてHTTPで配る方式で、仕組みは似ています。HLSはApple製品での標準対応が強みで、MPEG-DASHは国際規格であることと、Android向けやDRMの組み合わせの柔軟さが強みです。詳しい比較はHLSとMPEG-DASHの違いで解説しています。

HLSで配信すると画質は落ちますか

HLS自体は運び方の決まりなので、画質はエンコードの設定で決まります。ただし回線が細い視聴者には低い画質の版が自動で選ばれるため、見る側の環境によって画質が変わります。

この用語を扱ったコラム

似ている形式との違い

名前主に使う場面HLSとの違い
MPEG-DASHAndroid・Web・大手動画配信ISOの国際規格で、マニフェストはXMLのMPD。iPhoneのSafariは標準では再生できない
RTMP配信ソフトからサーバーへの送り込み常時接続で映像を送るプロトコル。視聴者への配信ではなく、エンコーダーから配信サーバーへの打ち上げに使われる
WebRTC双方向・超低遅延1秒未満の遅延で送れるが、大人数への配信にはサーバー側の仕組みが別に必要になる
LL-HLS低遅延のライブ配信HLSの拡張。セグメントをさらに細かく分けて、遅延を数秒程度まで縮める

関連する用語

最終更新