---
title: HTTP Live Streaming, HLSのまとめ　概要・仕組み・課題など
description: インターネットによる動画配信のコア技術と言われているHLS。マルチビットレートへの対応やユーザー側の環境に依存しない配信が可能となるなど、多くのメリットを持つHTTPベースのメディアストリーミングプロトコルです。今回は、HLSの概要や課題などについて詳しく解説いたします。
---

[ブイキューブのはたらく研究部 ](https://www.nice2meet.us)

# [HTTP Live Streaming, HLSのまとめ　概要・仕組み・課題など](https://www.nice2meet.us/hls-http-live-streaming)

 作成者: [ブイキューブ](https://www.nice2meet.us/author/ブイキューブ)｜2020.02.17

インターネットによる動画配信のコア技術と言われているHLS。マルチビットレートへの対応やユーザー側の環境に依存しない配信が可能となるなど、多くのメリットを持つHTTPベースのメディアストリーミングプロトコルです。

今回は、オンデマンド配信やライブ配信を手掛けるユーザーなら知っておきたいHLSの概要や課題などについて詳しく解説いたします。

## HLSとは

HLSはHTTP Live Streamingの略であり、Apple社が独自に開発した規格です。iOSだけでなく、Android（ネイティブ）や多くのWebブラウザで再生可能であり、[AbemaTVのようなライブ配信サービスにも採用](https://logmi.jp/tech/articles/320245)されています。

### HLSの概要

HLSの特徴として以下のようなポイントが挙げられます。

- HTTPアダプティブビットレートストリーミングをサポートしている
- VOD（オンデマンド配信）とライブ配信の双方に対応している
- HTTPSによる暗号化とユーザー認証に対応している
- 専用の設備が不要であり、ApacheなどのWebサーバーでも配信可能

また、HLSはインデックスファイルとセグメントファイルとに分かれて構成されている点も特徴のひとつ。インデックスファイルはm3u8プレイリストと呼ばれ、セグメントファイルの場所や再生時間、再生順序などを定義したメタデータです。

一方のセグメントファイルはtsファイルと呼ばれており、MPEG2 Transport Stream形式で細かく分割された複数の動画データファイル形式で配信されます。

### mp4との違い

動画ファイルで使われているmp4との違いですが、mp4をストリーミング用に変換したものがHLSであるという認識で問題ありません。HLSにて配信されたストリーミング動画をFFmpegというソフトを用いてmp4ファイルに変換することも可能です。

## HTTPストリーミングの種類

HTTPによるストリーミング配信には、HLS以外にもMPEG DASHやSmooth Streamingといった種類が存在します。これらの違いを簡単にご説明します。

### HLS

HLSはApple社が開発した技術ですが、MacやiPhoneだけでなくWindows（FlashPlayerやJavaScriptがインストールされていることが条件）やAndroid環境でも再生可能です。

現在ではHTTPストリーミング配信では最も多く利用されているプロトコルになります。

### MPEG DASH

MPEG-  DASHはHTML5+Javascriptで再生可能な国際標準のHTTPストリーミング技術です。もともとハリウッドの映像関連企業がネットでの動画配信に関する要望を取りまとめたことをきっかけに策定された規格であり、セキュリティが脆弱なFlashからHTML5への移行の流れを受けて普及した技術です。

### その他

Smooth  StreamingというMicrosoftが開発した技術があります。しかし、IE+Silverlight環境でしか動作せず、Edgeやchromeなどは対象外であるため普及には至りませんでした。また、Adobe Systemsが開発したHDS（(HTTP Dynamic Streaming）)も同様にFlashPlayerでの再生を条件としているため、現在ではほとんど新規利用されていない状況です。

このように、今後のHTTPストリーミングにおいてはHLSやMPEG- DASHが主流となっていくことがお分かりいただけると思います。

## HTTPストリーミングの特長

HTTPストリーミングの特長として最も優れているのは、汎用性の高いHTTPプロトコルを利用している点です。この点を中心にメリットを見ていきましょう。

### 汎用性が高い

HTTPプロトコルの利用により、専用の通信ポートを利用する必要が無くなります。専用の通信ポートを利用する形式だとセキュリティ上ブロックされることや対応できないソフトウェアがあることによる弊害があります。HTTPプロトコルを使用することでより多くのネットワークに対して動画配信を行うことが可能となり、配信側利用者側双方に大きなメリットが生まれてくるのです

### マルチビットレート配信

アダプティブビットレートストリーミングにより、ひとつのURLで複数のビットレートの映像データを送ることができます。従来では高画質と低画質に分けて動画を用意し、ユーザー環境に合わせて選択する必要がありましたが、端末の通信品質や通信環境を基にリアルタイムで最適なビットレートの映像データを配信することが可能となっています。

### マルチデバイス対応

HTTPに対応している端末であれば、その種別を問わず映像を観ることができます。OSや画面サイズなども気にする必要がありません。

## HLSの仕組み

では具体的なHLSの仕組みについてご説明します。HLSはインデックスファイル（.m3u8）とセグメントファイル（.ts）に分かれて配信されます。それぞれのファイルの持つ役割を以下に記します。

### インデックスファイル（.m3u8）

インデックスファイル（.m3u8）はプレイリストと呼ばれることもあるファイルです。EXT-X-TARGETDURATIONにより各tsファイルの秒数を指定したり、EXT-X-PLAYLIST-TYPEにより配信形式を指定したりする役割を持ちます。また、tsファイルの順番や秒数、ファイル名を定義して動画をスムーズに再生させるように記述されています。

### セグメントファイル（.ts）

動画コンテンツを格納したファイルです。細かく分割されており、AESによる暗号化も可能です。インデックスファイルに定義された規則に従って再生されます。

## CDNを使った構築

HLSによる動画ストリーミングを行う際、CDN（コンテンツ・デリバリ・ネットワーク）を構築し高速で安定した配信環境を実現することがあります。CDNプラットフォームを利用することにより、突発的なアクセス増加や保守にかかる人的リソースの削減といったメリットが見込まれます。

### CDNとは

CDN（コンテンツ・デリバリ・ネットワーク）とは専用の配信ネットワークを用いた効率的かつ高速なWeb配信システムです。

オリジナルのサーバーとは別にグローバルにCDNサーバーを複数用意しておき、オリジナルのコンテンツをキャッシュ（複製）して保存。ユーザーのリクエストに応じて最も近いPoP（配信拠点）からコンテンツを送り出すという仕組みになります。

Webコンテンツの表示や再生には、通信環境や通信速度が大きく影響します。また、遠方にあればあるほどサーバーからのパケットの転送に時間がかかります。特にストリーミング配信の場合はコンマ数秒の遅れがユーザーの不満につながることもあるため、CDNにより遅延防止がユーザエクスペリエンス向上のカギとなっているのです。

### CDNを使ったHTTPストリーミング

CDNを用いたHTTPストリーミング配信を可能にするサービスは多数存在しています。これらのサービスは、HLSをはじめ、MPEG DASHやHDSなど複数の配信技術に対応しており、動画ファイルをアップロードするだけでこれらの配信が可能となります。

また、さまざまな技術サポートも行っているため、技術的な不安も解消されるのではないでしょうか。

## HLSの課題

次にHLSの課題について考えてみましょう。現在、HLSの課題はほぼ遅延問題に集約されます。特にストリーミングにおいては遅延の発生はカスタマーの満足度を大きく下げる要因にもなります。

### 遅延が発生

先述したCDNなどのテクノロジーにより、HLSの遅延は大きく改善されることは確実です。とはいえ、その遅延が「どの程度」であり「どのようなコンテンツ」であるかによってユーザーの満足度も左右されます。

例えばスポーツ配信やテレビ視聴など、ユーザーがSNSで共感したり情報発信したりするようなコンテンツの場合、遅延するということは他者よりも遅く情報を入手することになります。SNS上では結果が流れているのに手元の動画ではまだ試合中といったこともありえるため、遅延はユーザーの満足度を低下させる要因になります。

スポーツ配信以上に遅延が問題となるのはビデオチャットやWeb会議です。お互いの会話に遅延が発生すると、80年代の衛星中継のようにぎこちない会議となることでしょう。双方向コミュニケーションに利用するのであれば少なくとも200150 ミリ秒（1 / 57 秒）以内に遅延をとどめておく必要があります。

## 低遅延化のための技術

このように遅延は配信業者にとって致命傷となることもあります。では、遅延を防止するためにはどのような技術が必要となるのでしょうか。以下、遅延防止（低遅延）のための技術をいくつかご紹介します。

### 低遅延 HTTP ストリーミング

HLS の場合、 2 秒のチャンク（セグメント）を使って遅延を8秒以下にすること、MPEG-DASHの場合は同様に1 秒のチャンク（セグメント）を使って遅延を4秒以下に削減することが可能となります。ただし、チャンクが小さすぎる場合、視聴のバッファリングが多発することにつながるので注意が必要です。

### CMAF

CMAFとはCommon Media Application Formatの略であり、セグメント内にさらに細かなセグメントを用意することにより超低遅延を実現する技術です。

### WebRTC

WebRTC （Web Real-Time CommunicationsRTMP）とはWebブラウザ上で双方向のリアルタイムコミュニケーションを可能にするオープンフレームワークです。ユーザーはWebプラグインやソフトウェアをインストールすることなく、P2Pでデータ共有や遠隔会議を実現することができます。

### RTMP

RTMPはReal-Time Messaging Protocolを意味します。Adobe 社が開発しており、Flashを必要とするためやや古い技術となりますが、エンコーダが数多く存在しているため今でも使われています。

### UDPベース

TCP ではなく UDPベースで通信を行う技術もあります。中でも（株）ブイキューブが提供する、ライブ配信・ビデオ通話・音声通話SDKの[Agora](https://jp.vcube.com/service/agora)は、WebRTCやRTMPと同等かそれ以下の低遅延を実現するサービスとして存在します。

世界中のデータセンターにノードを構築し、自動で最適な経路を選択するアルゴリズムを備えた仮想広域ネットワークを用い、UDPでも安定して低遅延の通信を実現しています。

## まとめ

動画配信やストリーミングにおいて、HLSの活用は今後もますます加速していくことでしょう。ただし、遅延というデメリットを解消するためには、ある程度専門的な技術や仕組みが必要となります。

特にリアルタイム性を要求されるコンテンツの場合は低遅延への取り組みがマストでしょう。ユーザーの利用環境やコンテンツの内容に応じて、適切な取り組みを行うことが事業者に求められているのです。

[完全な記事を表示](https://www.nice2meet.us/hls-http-live-streaming)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "ブイキューブ"
  },
  "dateModified" : "2023-10-19T13:45:57.291Z",
  "datePublished" : "2020-02-17T13:45:00Z",
  "headline" : "HTTP Live Streaming, HLSのまとめ　概要・仕組み・課題など",
  "image" : {
    "@type" : "ImageObject",
    "height" : 432,
    "url" : "https://cdn2.hubspot.net/hubfs/1970584/teleworknavi/images/post_header/blog_httplivestreaming_main.jpg",
    "width" : 700
  },
  "mainEntityOfPage" : "https://www.nice2meet.us/hls-http-live-streaming",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "ブイキューブのはたらく研究部"
  }
}
```