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-DASHの違いとは?セグメント配信とABRの仕組みを解説HLSとMPEG-DASHはどちらもHTTPで数秒単位のセグメントを配る配信プロトコルです。策定元とマニフェスト形式、対応デバイスの違いから、ABRの仕組み、CMAFによる低遅延化、DRM対応まで、配信基盤選定の論点を整理します。放送技術解説
SRT・RTMP・WebRTC・HLSの違い|配信プロトコルを遅延で選ぶライブ配信のプロトコルは、受け持つ区間が違うため単純な優劣で比べられません。SRT・RTMP・WebRTC・HLSを遅延・区間・視聴側の要件・多人数配信の軸で比較し、伝送区間と視聴者配信を組み合わせて設計する考え方を整理します。放送技術解説
似ている形式との違い
関連する用語
最終更新