導入
nginx-rtmpを利用したHLS配信を検証していたところ、HLSをネイティブ再生できてしまったので色々調べてみました。
環境
Chrome 142.0.7444.163
調査
Safari以外のブラウザでは、通常、HLSはネイティブでサポートされていないため、なにかしら工程を踏む必要があるらしい。
(拡張機能や、hls.jsを実装したプレイヤーを作る等)
しかし今回はnginx-rtmpによって配信を行い、Chromeからアクセスしたところ、普通に再生されました。
最初は勘違いで、拡張機能が入ってた、とかそういう話かと思ったのですが、
解明できず、同じ状況の人を探しました。
HLSストリームを扱うウェブプレイリストプレーヤーを管理しています。実はこの変更に気づいたのは偶然でした。Chromeでm3u8ファイルを開いたら、なんと再生が始まったのです。どうやら2025年10月28日に追加されたようです。(Google翻訳)
以下資料によると確かに142以降から対応していることになっています。
結論
実運用となると、m3u8の再生可否だけでなく、他にも考慮すべき点(セグメント取得,バッファ管理,低遅延HLS)があるため、依然として、HLS対応のプレイヤーを利用したり、hls.jsなどを組み込んだほうがいいことは変わらなさそうです。
(調べてすぐ出てこなかったことは記事に残しとこう精神)
