こんにちは、streampackのfadoです。気付けば11月になりました。今日は寒いのかなと思ったら強い日差しで急に暑かったりしますよね。服装選びに困っているという方もいらっしゃるのではないでしょうか。僕はまだまだ半袖で平気な季節です!あついといえば今自分の中で熱いのは動画ストリーミングサーバーのWowza Streaming Engineです(えっ今更?!)。というわけでこの度はWowza Streaming Engineについて記事にしたいと思います。

背景

Ant Media Server(以下Antサーバー)に続き、Wowza Streaming Engine(以下Wowzaサーバー)にも触れる機会があました。Wowzaサーバーの一つの機能としてStream Targetsというものがありますがどういった機能なのか、設定方法などを検証してみましたので簡単に説明させて頂きます。

構成

OBS(RTMP) -> Wowzaサーバー(RTMP) -> Antサーバー -> WebRTC(ブラウザー)

今回は配信ソフトとしてOBS Studio(以下OBS)を使います。RTMPストリーミングをし、WowzaのStream Targets機能でAntサーバーに再配信し、AntサーバーのWebRTC経由でブラウザ視聴するという流れになります。

環境

Ant Media ServerとWowza Streaming Engineの環境について

  • 検証はAWS上で実施しました。
  • AntサーバーとWowzaサーバーは各ベンダーが用意したAMI(AWS Marketplace)から構築したものです(ライセンス費用が発生しますのでご注意ください)
  • AntサーバーとWowzaサーバーの構築に関しては割愛させて頂きます(Antサーバーについては前回の記事をご参照頂ければと思います)
  • サーバーのバージョン:
    • Ant Media Server: Enterprise Edition 1.8.1 20190828_1051
    • Wowza Streaming Engine: Wowza Streaming Engine Pro 4 for Amazon EC2 4.7.7 build20181108145350 License

手順

Antサーバー

  • IPアドレス:パブリックIPアドレス or ELB名
  • ポート:1935/tcp
  • Application名: WebRTCAppEE

Wowzaサーバー

①Wowza管理画面→Applications→ Add ApplicationからApplicationを作成します。

②LiveのLiveを選択します。

③作成したApplicationをクリックし、Stream Targetsを選択します。

④Add Stream TargetからAdd Stream Target

⑤今回はDestinationへのRTMPの再配信なので「Generic Target Destinations」のRTMPを選択

⑥Destinationの情報を自分の環境に合わせて適宜に記入します。完了したら「Add this target」で追加します。

Stream Target Name: Ant Media Server
Source Stream Name: wowza (OBSで指定したストリームキー)
Destination Application Name: WebRTCAppEE
Destination Application Instance: antmedia (このインスタンス名は
でAntサーバー上にて表示されます)
Destination Host: Ant Media ServerのパプリックIPアドレス or ELB名
Destination Port: 1935
Destination Stream Name: test (このストリーム名でAntサーバー上にて表示されます)
User Name: 今回は不要
Password: 今回は不要

⑦Targetを作成後、Stream Targetを有効化しないといけません。

■有効化後

■有効化後にWowzaサービスの再起動が必要です。

*検証が安易になるため、ApplicationのSource Securityの設定で「RTMP Sources」をOpen(no authentication required)に変更します(Wowzaサービスの再起動が必要)

OBSからRTMP配信をする

動作確認

■Wowzaサーバーでの確認:RTMPストリームが問題なくWowzaサーバーに到着した場合、Stream TargetのStatusがActiveに切り替わります。StatusがWaitingとなっている場合はOBSソフト -> Wowzaサーバーへの接続に問題がある、StatusがErrorの場合はWowzaサーバー -> Antサーバーへの接続に問題がある、という可能性が考えられるので設定に不備がないか再度ご確認下さい。

■Antサーバーでの確認:WebRTCAppEEのAPPLICATIONSでWowzaからのストリーム名が表示されていれば再配信は成功です。

■ブラウザからWebRTC視聴をします。

URL: https:// Ant Media ServerのパブリックIPアドレス/WebRTCAppEE/player.html

遅延

遅延についてどれほどあるのか気になりましたので計測してみました。WebRTCにおける遅延は0.5秒〜1秒未満とのことですが上記構成でこのような結果となりました。超低遅延にまでは及ばないですが1秒ほどの遅延を実現させることができました!

結論

  • WowzaのStream Targets機能を使えばライブストリーミングを別のDestination(複数でも可)に再配信させることができます。対応するプロトコルも豊富でMPEG-TS,RTMP,RTPなどサポートされています。
  • 設定自体も簡単で自分で試したところ、特に苦戦した箇所はございません。
  • AntサーバーのようにsourceとしてUDPをサポートしていない場合、WowzaからRTMPで再配信すればmpeg-ts/udp -> WebRTCを実現できます。こちらは近いうちにテストして記事にできたらなと思っております。

参考
https://www.wowza.com/docs/how-to-stream-to-another-wowza-streaming-engine-instance
https://www.wowza.com/docs/how-to-use-rtmp-to-distribute-live-streams
https://obsproject.com/ja

元記事はこちら

Wowza Streaming EngineのStream Targets機能について