🤖

HTTP Live Streaming 2nd Edition

に公開

こんにちは。takashi です。私は動画の配信プラットフォームを提供する会社にて、全体的な動画技術や配信プラットフォームに携わっています。

初めての記事という事で、まずは動画ストリーミングのデファクトスタンダードであるHLS(HTTP Live Streaming)についての記事を書いていきつつ、今後は動画にまつわるいろいろな技術をここで紹介できればと思っています。

HTTP Live Streaming 2nd Edition

RFC8216bis (IETF)

まずRFC8216にて定義されているHLSの規格ですが、現在RFC8216bisとして2nd Editionの制定が進んでいます。(bisはラテン語で「2度」というような意味)

https://datatracker.ietf.org/doc/draft-pantos-hls-rfc8216bis/

2025年7月現在でVersion 17までが存在しています。これからどんどん規格化が進み、おそらく近い将来に新たなRFC規格としてナンバリングされるかと思います。
この文書の先頭には This document obsoletes RFC 8216. と、8216を廃止するためのドキュメントだという記載がありますので、bis版が正式になった際には8216自体は廃止になる前提という事ですね。

基本的にはLL-HLS(Low Latency HLS)の登場などにより、新しい機能を正式に規格に盛り込む事が変更点となっていますが、そのほかにも有用なタグが多く追加されています。このあたりをプレイヤー側の対応状況と合わせて解説できればと思います。

EXT-X-Version (Apple)

参考までに、Apple公式のHLS Versionに関しても見ておくといいかもしれません。
https://developer.apple.com/documentation/http-live-streaming/about-the-ext-x-version-tag

動作確認について

というわけで新しい規格のHLSが現在どこまで実装が進み、どのような挙動を行うのかを検証していこうと思います。まずは開発環境を構築し、その後は順番に機能毎での説明を行っていければと思います。

プレイヤー

再生確認を行うのは主に以下の環境です。

  • hls.js 1.6.7
    • Chrome (Windows 10)
    • Safari (MacOS)
  • iOS (iPhone 16Pro Max, iPad mini7)
  • Android (Galaxy SC-56B)

現在手持ちのものがこれだけなのでという理由ですが、また同僚や友達の方で確認が取れれば随時増やしていければと思っています。ああはやくWindows11を買わなければ。。。

インフラ環境

特にスマートフォンなどで確認するのでなければVirtualBoxやVMwareなどの仮想環境で充分ですが、CDNとの接続テストまでやるのであれば証明書付きのHTTPSサーバがあるとより良いでしょう。
まあ今日日はミニサーバなども導入している方は多いと思うので、サーバ環境構築などには細かくは触れません。そこに触れるとそれだけで1記事必要になると思うので。(時間があれば記事を書いてみます)

インフラ環境についてはスマートフォン確認やCDN接続を踏まえた上で、以下の環境を前提とします。

  • グローバルIPを持っている事(CDNからのアクセスや、5G/LTE回線からのアクセス)
  • HTTPSにてアクセスできる事(hls.jsがhttpに対応していない為)
  • ドメインを持っている事(証明書を取得する為、X.509自己証明書ではCloutFrontなど未対応)

自宅がPPPoEなどでグローバルIPが1個付与されているなら、DDNSなどの併用と、ルータの設定でNAPTなどを使用してHTTPやHTTPSを転送すれば環境を作ることができるかと思います。動画エンジニアはある程度のネットワーク知識もあった方がよいですので、これくらいは自分で構築してみるとよいかもですね。

視聴環境とインフラ環境が用意できれば、あとは動画ストリームを作成していくだけですね。
次の記事から順番に、エンコード環境の用意とHLSの2nd Edition用動画ファイルを実際に作成していきたいと思います。


https://voice.stream.co.jp/

Discussion