Amazon Linux 2上でWowzaサーバーをセットアップしてみた
お久しぶりです。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のライセンスを申請
AWS
環境上で構築しています。Wowza Streaming Engine
(以下Wowza
)は有料ですが30日間の通常版か180日間のDeveloper版のTrialライセンスを申し込むことができます。Amazon Linux 2
を対象にしていますがCentOS 7
でも同じ手順を踏めばセットアップ可能です。-
Wowza
はカスタマイズ可能であらゆるマルチデバイスへ高品質のビデオ、オーディオをストリーミングすることのできる信頼性の高いメディアサーバソフトウェアです。 - ライセンス取得にはWowzaアカウントが必須です。アカウントをお持ちでない場合、https://auth.wowza.com/login から新規作成して下さい。
- Wowzaのこちらの記事を参考にインスタンスサーバーのSecurity Groupにポートを許可して下さい。
- 一台のインスタンスサーバーにつきなるべく複数バージョンの
Wowza
を起動させないようにして下さい。 -
Wowza
をインストール予定のインスタンスサーバーがWowzaが推奨の動作環境に適しているかどうかこちらからご確認下さい。
手順
Wowzaのライセンスを申請
Trial版には2種類ございます。それぞれの利用可能期間と制限について下記をご確認下さい。
今回は長く利用できるDeveloper版からライセンスを申請します。申請後数分以内に登録のメールアドレスに送信されます。セットアップ時に必要なのでライセンスキーは事前に控えておきましょう。
Wowzaインストーラーをダウンロード
ログイン済みのWowza
のポータルからLinux 64-bit版のインストーラーをダウンロードします。
セットアップ
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 Engine
とWowza 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の見直しをしてみるといいかもしれません。
2.先ほどセットアップ時に設定したログイン情報でログインします。
3.ログイン後、次のようにWowzaのホーム画面が表示されます。
-
「Server」 -> 「About」タブで
Wowza
の基本情報(ライセンス制限やJavaのバージョン等)が記載していて各種の内容を確認ができます。
- 「Applications」タブから新規Applicationsの追加ができます。ただし、今回はTrialのDeveloper版なのでLive HTTP OriginとVOD HTTP Originは利用できません。
配信と視聴のテスト
1.既存のLiveアプリケーションでRTMP配信をしてみます。今回はソース認証を行いませんので「RTMP Sources」と「RTSP Sources」をデフォルトの有効から無効化にしておきます。
*ソース認証とはセキュリティーのために配信先からWowzaサーバーに配信を開始する際に認証をかけること
- 変更後
*変更後はApplicationを再起動して下さい。
2.配信側の準備をします。
今回はビデオ録画と生放送用の無料でオープンソースのソフトウェアであるOBSを使って配信をしてみたいと思います。ちなみに私がいつも配信検証で利用しているフリー動画素材はこちらです。
- OBSの配信設定画面
「Start Streaming」をクリックすれば配信開始です!
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アドレスが許可されていることを確認しましょう。
4.視聴をします。
Applicationsの「Test Playback」をクリックすれば、どのプロトコルに対してどのURLで視聴できるか確認することができます。
このままだとServerのIPアドレスがプライベートIPアドレスになっていたり、StreamがMyStreamとなっていたりで必要に応じて修正します。
- Server:
Wowza
サーバーのPublic IPアドレスを指定 - Application: 既にliveアプリケーションなのでこのまま
- Stream: 先ほどの
OBS
の配信設定でいうとStream Keyを指定
HLSプロトコルで視聴してみます。
Safariでの視聴
http://[WowzaサーバーのPublic IPアドレス]:1935/live/test/playlist.m3u8
RTMPプロトコルで視聴してみます。
VLCでの視聴
rtmp://[WowzaサーバーのPublic IPアドレス]:1935/live/test
まとめ
実際仕事で使ってみてWowza
はとても万能なメディアサーバソフトウェアだなと思いました。現時点では出力としてのListenerモードには対応していませんが入力としてSRTプロトコルでの配信も可能です。その上、様々な機能を備えています。その中に擬似ライブ配信ができるスケジュール機能とライブストリーミングを他のターゲットに中継させるStream Target機能があります。気になる方は私が以前に書きましたスケジュール機能とStream Target機能の記事を合わせてお読み頂けますと嬉しいです。このご時世だからこそライブ配信のニーズが益々高まる中、これからWowzaがどんな新機能を盛り込んでくれるのかとても楽しみです。
参考文献
Author And Source
この問題について(Amazon Linux 2上でWowzaサーバーをセットアップしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/afadhli/items/3c72fbeffdc412c10dd1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .