LoginSignup
3
2

More than 1 year has passed since last update.

Amazon Linux 2上でWowzaサーバーをセットアップしてみた

Last updated at Posted at 2021-06-18

お久しぶりです。streampackのfadoです。汗ばむ時期がまたやってきてしまいました。手洗い、うがいの習慣に、十分な水分補給もプラスしないといけなくなりますね。さて、今回はWowza Streaming Engineの導入について記事にしたいと思います。そもそもどうやってセットアップするの?という初心者向けにライセンスの取得からサーバーへのインストールに加え、配信と視聴テストに至るまで簡単に解説させて頂きます。

注意事項

  • AWS環境上で構築しています。
  • Wowza Streaming Engine(以下Wowza)は有料ですが30日間の通常版180日間のDeveloper版のTrialライセンスを申し込むことができます。
  • この執筆時点ではWowzaの最新バージョン4.8.13+1 (build 20210527172944)を利用しています。
  • AMIで提供されているプリビルトではなくクリーンインストールからのセットアップとなります。
  • インスタンスサーバーはAmazon Linux 2を対象にしていますがCentOS 7でも同じ手順を踏めばセットアップ可能です。

始める前に

  • Wowzaはカスタマイズ可能であらゆるマルチデバイスへ高品質のビデオ、オーディオをストリーミングすることのできる信頼性の高いメディアサーバソフトウェアです。
  • ライセンス取得にはWowzaアカウントが必須です。アカウントをお持ちでない場合、https://auth.wowza.com/login から新規作成して下さい。
  • Wowzaのこちらの記事を参考にインスタンスサーバーのSecurity Groupにポートを許可して下さい。
  • 一台のインスタンスサーバーにつきなるべく複数バージョンのWowzaを起動させないようにして下さい。
  • Wowzaをインストール予定のインスタンスサーバーがWowzaが推奨の動作環境に適しているかどうかこちらからご確認下さい。

手順

Wowzaのライセンスを申請

Trial版には2種類ございます。それぞれの利用可能期間と制限について下記をご確認下さい。

通常版
Developer版

今回は長く利用できるDeveloper版からライセンスを申請します。申請後数分以内に登録のメールアドレスに送信されます。セットアップ時に必要なのでライセンスキーは事前に控えておきましょう。

Wowzaインストーラーをダウンロード

ログイン済みのWowzaのポータルからLinux 64-bit版のインストーラーをダウンロードします。

スクリーンショット 2021-06-17 13.29.06.png

セットアップ

1.対象インスタンスサーバーにアップロードして実行権限を付与します。

$ sudo chmod +x WowzaStreamingEngine-4.8.13+1-linux-x64-installer.run

2.インストーラーを実行します。色々聞かれますが指示に従って進みます。

$ sudo ./WowzaStreamingEngine-4.8.13+1-linux-x64-installer.run
  • 契約内容を同意するかどうか - 全て「y」にします
  • Wowza Streaming Engine Manager(管理画面コンソール)のログイン名とパスワードを好きなものに設定します。後ほどログインのため忘れないように控えましょう。
  • ライセンスキーを記入する - 登録メールに送信されたライセンスキーを入れます
  • Wowzaサービスがサーバー起動時に自動起動にするかどうか - 利用状況に合わせて選択します

3.Wowza Streaming EngineWowza Streaming Engine Managerサービスが起動されたことを確認します。

$ ps axu|grep jav[a]
root     30538  4.5 17.1 4406972 681676 ?      Sl   14:03   0:21 /usr/local/WowzaStreamingEngine/java/bin/java -Xmx1553M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:SurvivorRatio=1 -server -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true -Dcom.wowza.wms.runmode=service -Dcom.wowza.wms.native.base=linux -Dlog4j.configurationFile=/usr/local/WowzaStreamingEngine/conf/log4j2-config.xml -Dcom.wowza.wms.AppHome=/usr/local/WowzaStreamingEngine -Dcom.wowza.wms.ConfigURL= -Dcom.wowza.wms.ConfigHome=/usr/local/WowzaStreamingEngine -cp /usr/local/WowzaStreamingEngine/bin/wms-bootstrap.jar com.wowza.wms.bootstrap.Bootstrap start
root     30559  4.5  9.5 3653528 381628 ?      Sl   14:03   0:21 /usr/local/WowzaStreamingEngine/java/bin/java -cp :/usr/local/WowzaStreamingEngine/manager/lib/lib-jaxb/istack-commons-runtime-3.0.11.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-jaxb/jakarta.activation-1.2.2.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-jaxb/jakarta.xml.bind-api-2.3.3.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-jaxb/jaxb-runtime-2.3.3.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-jaxb/txw2-2.3.3.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/ecj-3.22.0.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-annotations-api-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-api-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-el-api-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-embed-core-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-embed-el-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-embed-jasper-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-jasper-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-jasper-el-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-jsp-api-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-juli-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-servlet-api-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-util-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/lib-tomcat/tomcat-util-scan-9.0.36.jar:/usr/local/WowzaStreamingEngine/manager/lib/wms-tomcat-9.0.36.jar -Djava.security.egd=file:/dev/./urandom -Dcom.wowza.wms.ConfigURL="" -Dcom.wowza.wms.ConfigHome=/usr/local/WowzaStreamingEngine/manager -Djava.io.tmpdir=/usr/local/WowzaStreamingEngine/manager/temp -Djava.net.preferIPv4Stack=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/WowzaStreamingEngine/manager/conf/tomcat-log4j.properties -Dlog4j.configurationFile=/usr/local/WowzaStreamingEngine/manager/conf/log4j2-config.xml -Dlogback.configurationFile=/usr/local/WowzaStreamingEngine/manager/conf/logback-config.xml launch.Main --prefix=/enginemanager --defaultWebApp=/enginemanager --tempDirectory=/usr/local/WowzaStreamingEngine/manager/temp --webroot=/usr/local/WowzaStreamingEngine/manager/temp --warfile=/usr/local/WowzaStreamingEngine/manager/lib/WMSManager.war --httpPort=8088 --config=/usr/local/WowzaStreamingEngine/manager/conf/tomcat.properties --ajp13Port=-1 --directoryListings=false
  • 手動でサービスを起動させる場合
$ sudo systemctl start WowzaStreamingEngine.service
$ sudo systemctl start WowzaStreamingEngineManager.service
  • 手動でサービスを停止させる場合
$ sudo systemctl stop WowzaStreamingEngine.service
$ sudo systemctl stop WowzaStreamingEngineManager.service
  • 手動でサービスを再起動させる場合
$ sudo systemctl restart WowzaStreamingEngine.service
$ sudo systemctl restart WowzaStreamingEngineManager.service
  • サービス状況を確認する場合
$ sudo systemctl status WowzaStreamingEngine.service
$ sudo systemctl status WowzaStreamingEngineManager.service

Wowza Streaming Engine Managerにログイン

1.ブラウザで下記URLを開きます。
http://[WowzaサーバーのPublic IPアドレス]:8088/enginemanager

そうすると下記画面が表示されますがここではソース認証を設定ぜずに「Skip Intro」で先に進みます。もしアクセス時にエラー等が出た場合、Security Groupの見直しをしてみるといいかもしれません。

スクリーンショット 2021-06-17 15.18.10.png

2.先ほどセットアップ時に設定したログイン情報でログインします。

スクリーンショット 2021-06-17 15.26.40.png

3.ログイン後、次のようにWowzaのホーム画面が表示されます。

スクリーンショット 2021-06-17 15.29.15.png

  1. 「Server」 -> 「About」タブでWowzaの基本情報(ライセンス制限やJavaのバージョン等)が記載していて各種の内容を確認ができます。

スクリーンショット 2021-06-17 15.35.22.png

  1. 「Applications」タブから新規Applicationsの追加ができます。ただし、今回はTrialのDeveloper版なのでLive HTTP OriginVOD HTTP Originは利用できません。

スクリーンショット 2021-06-17 15.38.41.png

配信と視聴のテスト

1.既存のLiveアプリケーションでRTMP配信をしてみます。今回はソース認証を行いませんので「RTMP Sources」「RTSP Sources」をデフォルトの有効から無効化にしておきます。

*ソース認証とはセキュリティーのために配信先からWowzaサーバーに配信を開始する際に認証をかけること

  • 変更後

スクリーンショット 2021-06-17 17.08.13.png

*変更後はApplicationを再起動して下さい。

2.配信側の準備をします。
今回はビデオ録画と生放送用の無料でオープンソースのソフトウェアであるOBSを使って配信をしてみたいと思います。ちなみに私がいつも配信検証で利用しているフリー動画素材はこちらです。

  • OBSの配信設定画面

スクリーンショット 2021-06-17 17.31.22.png

「Start Streaming」をクリックすれば配信開始です!

スクリーンショット 2021-06-17 17.37.27.png

OBSではなくffmpegで配信してみたい方は下記コマンドで配信可能です。

$ ffmpeg -re -stream_loop -1 -i sample.mp4 -vcodec copy -acodec copy -flags +loop-global_header -f flv rtmp://[WowzaサーバーのPublic IPアドレス]/live/test

3.Wowza管理画面コンソール上でストリームが入っていることを確認
「Applications」 -> 「Incoming Streams」タブで下記のように現在入ってきているストリームが表示されます。もし入ってきていない場合、配信側からのPublic IPアドレスが許可されていることを確認しましょう。

スクリーンショット 2021-06-17 17.50.21.png

4.視聴をします。
Applications「Test Playback」をクリックすれば、どのプロトコルに対してどのURLで視聴できるか確認することができます。

スクリーンショット 2021-06-17 17.56.05.png

このままだとServerのIPアドレスがプライベートIPアドレスになっていたり、StreamがMyStreamとなっていたりで必要に応じて修正します。

スクリーンショット 2021-06-17 18.22.00.png

  • Server: WowzaサーバーのPublic IPアドレスを指定
  • Application: 既にliveアプリケーションなのでこのまま
  • Stream: 先ほどのOBSの配信設定でいうとStream Keyを指定

HLSプロトコルで視聴してみます。

Safariでの視聴

http://[WowzaサーバーのPublic IPアドレス]:1935/live/test/playlist.m3u8

スクリーンショット 2021-06-17 18.00.42.png

RTMPプロトコルで視聴してみます。

VLCでの視聴

rtmp://[WowzaサーバーのPublic IPアドレス]:1935/live/test

スクリーンショット 2021-06-17 18.26.14.png

まとめ

実際仕事で使ってみてWowzaはとても万能なメディアサーバソフトウェアだなと思いました。現時点では出力としてのListenerモードには対応していませんが入力としてSRTプロトコルでの配信も可能です。その上、様々な機能を備えています。その中に擬似ライブ配信ができるスケジュール機能とライブストリーミングを他のターゲットに中継させるStream Target機能があります。気になる方は私が以前に書きましたスケジュール機能Stream Target機能の記事を合わせてお読み頂けますと嬉しいです。このご時世だからこそライブ配信のニーズが益々高まる中、これからWowzaがどんな新機能を盛り込んでくれるのかとても楽しみです。

参考文献

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2