Help us understand the problem. What is going on with this article?

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

こんにちは、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を作成します。
スクリーンショット 2019-11-06 14.45.03.png

②LiveのLiveを選択します。

③作成したApplicationをクリックし、Stream Targetsを選択します。
スクリーンショット 2019-11-06 14.45.58.png

④Add Stream TargetからAdd Stream Target
スクリーンショット 2019-11-06 14.52.04.png

⑤今回はDestinationへのRTMPの再配信なので「Generic Target Destinations」のRTMPを選択
スクリーンショット 2019-11-06 14.55.21.png

⑥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: 今回は不要

スクリーンショット 2019-11-06 15.20.31.png

⑦Targetを作成後、Stream Targetを有効化しないといけません。
スクリーンショット 2019-11-06 15.32.39.png

■有効化後
スクリーンショット 2019-11-06 15.33.53.png

■有効化後にWowzaサービスの再起動が必要です。
スクリーンショット 2019-11-06 15.33.02.png

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

OBSからRTMP配信をする

スクリーンショット 2019-11-06 15.29.55.png

動作確認

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

■Antサーバーでの確認:WebRTCAppEEのAPPLICATIONSでWowzaからのストリーム名が表示されていれば再配信は成功です。
スクリーンショット 2019-11-06 15.37.26.png

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

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

スクリーンショット 2019-11-06 15.49.15.png

遅延

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

スクリーンショット 2019-11-08 10.23.31.png

結論

  • 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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away