去年の WWDC2019 で発表された Apple 謹製 LL-HLS ですが、諸々仕様変更などもあり今年の WWDC2020で情報のアップデートがありました。

今年中にはベータが外れるとのことでしたが、未だ GA になったとは聞いていない中、Wowza が Apple LL-HLS に対応したとのことで、早速試してみました。

Wowza Streaming Engine

Wowza の基本的な設定などは割愛します。
試したのは AWS EC2 で稼働する Wowza ですが、プラットフォームは関係なく動作すると思います。

設定

下記のように設定ファイルを変更するだけ。

https://www.wowza.com/docs/deliver-apple-low-latency-hls-live-streams-using-wowza-streaming-engine

あとご丁寧に動画でも設定変更方法を説明してくれています。

https://www.wowza.com/blog/announcing-new-support-for-low-latency-hls

今回、Wowza で SSL を利用する為の手順は面倒なので省き、代わりに CloudFront を噛ますことで HTTPS を利用できるようにしてます。

Encoder

何でもよいかと。
試しに OBS で RTMP で送りつけます。

分かりやすいようにブラウザで時計サイトを開いてキャプチャします。

視聴

iOS

iOS14 デバイスならなんもせずにそのまま Safari で視聴できます。
なんと遅延2秒で安定します。

Mac

THEOPlayer のテストページで再生します。

Mac Chrome で3秒

https://www.theoplayer.com/ll-hls-test-page

Android

こちらも THEOPlayer で再生します。
約2秒

まとめ

どこに行っても「低遅延、低遅延」と言われる昨今、本家である Apple の LL-HLS が実際に使えるようになったのは嬉しい限り。
遅延2秒とか、もう殆ど地デジと変わりません!

反面、仕様がとても複雑になり、特に Player 側の実装は大変なんじゃないかと思われます。
自分が調べた限りにおいてですが、現状まともに動作するが前述の iOS14 と THEOPlayer のみで、他の HTML5 Player で対応しそうなもの(いわゆるベータ)などは、Wowza デフォルト設定では安定せず、chunkDuration を伸ばせば安定、けど遅延7秒くらいに増えちゃう、といった状況でした。

元記事はこちら

低遅延動画配信 Apple Low Latency HLS を試す