去年の WWDC2019 で発表された Apple 謹製 LL-HLS ですが、諸々仕様変更などもあり今年の WWDC2020で情報のアップデートがありました。
今年中にはベータが外れるとのことでしたが、未だ GA になったとは聞いていない中、Wowza が Apple LL-HLS に対応したとのことで、早速試してみました。
Wowza Streaming Engine
Wowza の基本的な設定などは割愛します。
試したのは AWS EC2 で稼働する Wowza ですが、プラットフォームは関係なく動作すると思います。
設定
下記のように設定ファイルを変更するだけ。
あとご丁寧に動画でも設定変更方法を説明してくれています。
今回、Wowza で SSL を利用する為の手順は面倒なので省き、代わりに CloudFront を噛ますことで HTTPS を利用できるようにしてます。
Encoder
何でもよいかと。
試しに OBS で RTMP で送りつけます。
分かりやすいようにブラウザで時計サイトを開いてキャプチャします。
視聴
iOS
iOS14 デバイスならなんもせずにそのまま Safari で視聴できます。
なんと遅延2秒で安定します。
Mac
THEOPlayer のテストページで再生します。
Mac Chrome で3秒
Android
こちらも THEOPlayer で再生します。
約2秒
まとめ
どこに行っても「低遅延、低遅延」と言われる昨今、本家である Apple の LL-HLS が実際に使えるようになったのは嬉しい限り。
遅延2秒とか、もう殆ど地デジと変わりません!
反面、仕様がとても複雑になり、特に Player 側の実装は大変なんじゃないかと思われます。
自分が調べた限りにおいてですが、現状まともに動作するが前述の iOS14 と THEOPlayer のみで、他の HTML5 Player で対応しそうなもの(いわゆるベータ)などは、Wowza デフォルト設定では安定せず、chunkDuration を伸ばせば安定、けど遅延7秒くらいに増えちゃう、といった状況でした。