Wowza Streaming Engine のインストールとセットアップ

[この記事は 2023/02/01 に更新されました]

## Wowza Streaming Engine とは

Wowza Streaming Engine は Wowza Media Systems が開発しているストリーミングサーバーのソフトウェア製品です。
ビデオ・オンデマンドやライブのビデオストリーミングのためのプラットフォームの構築に利用することができます。
MPEG-DASH, Apple HTTP Live Streaming (HLS), Adobe RTMP など主要なストリーミング プロトコルに対応し、
同時に、ビデオチャットなどに用いられる遅延の少ない WebRTC のようなプロトコルにも対応します。

Java VM 上で動作するプラットフォームで、Windows/macOS/Linux の各 OS で動作します。
オンプレミスのデータセンターだけでなく、各クラウド上の仮想マシンやコンテナーで動作させることもできます。

この記事では、Ubuntu Linux にインストールし、ビデオ・オンデマンド ストリーミングの動作確認をします。

## Wowza Streaming Engine のインストール

### Wowza Streaming Engine のトライアルライセンスの入手

Wowza Streaming Engine を動作させるにはライセンスキーが必要となりますが、
Wowza Media Systems ではトライアル用のライセンスを無料で提供しています。

Wowza Streaming Engineのトライアルでは、以下を提供します。

* 最も安定しスケーラービリティの高いビデオストリーミングのためのソフトウェアを提供
* ライブ、ビデオ・オンデマンドのための REST/Java API を提供
* フル機能を提供する30日間のトライアル

[こちら](https://auth.wowza.com/register?type=engine&optin=0) から Wowza アカウントを作成し、
トライアルに参加することができます。
登録が完了すると、メールが届き、ライセンスキーを入手することができます。

![Wowza Streaming Engine のトライアル登録](https://shigeyf.dev/posts/_streaming/get-started-wowza-streaming-engine/wowza-streaming-engine-trial.jpg)

### Wowza Streaming Engine のダウンロード

次に Wowza Streaming Engine ソフトウェアをダウンロードします。
先ほど、登録した Wowza アカウントを使って、[Wowza Portal](https://auth.wowza.com/login) にログインし、
**[Downloads]** タブから Linux 用のインストーラーをダウンロードします。

![Wowza Streaming Engine のダウンロード](https://shigeyf.dev/posts/_streaming/get-started-wowza-streaming-engine/wowza-streaming-engine-downloads.jpg)

ダウンロードした Linux 用インストーラーのファイル名は `WowzaStreamingEngine-4.8.21+6-linux-x64-installer.run` です。

### Ubuntu Server への Wowza Streaming Engine のインストール

[Ubuntu Server Linux](https://ubuntu.com/download/server) がインストールされているコンピューターにインストールします。
この記事では、記事作成時の最新の LTS (Long-Term Support) 版の Ubuntu Server 22.04 LTS を使います。

以下のコマンドを実行して、ダウンロードしたインストーラーを使ってインストールを行います。

* **[WSE_USERNAME]**: 管理 UI へのログインのユーザー名を指定します
* **[WSE_PASSWORD]**: 管理 UI のログイン ユーザーのパスワードを指定します
  * パスワードに指定可能な文字は、英数字と4種類の記号 (@ . _ -) になります
* **[WSE_LICENSEKEY]**: Wowza Streaming Engine のトライアル用ライセンスキーを入力します。

```bash
chmod +x WowzaStreamingEngine-4.8.21+6-linux-x64-installer.run
./WowzaStreamingEngine-4.8.21+6-linux-x64-installer.run --prefix /usr/local \
  --username [WSE_USERNAME] --password [WSE_PASSWORD] --licensekey [WSE_LICENSEKEY]
```

以下のメッセージが表示されたら、セットアップウィザードに従ってインストールします。
インストールパラメーターはコマンドラインで指定しているため、[Enter] キーを押していけば進められます。

```
----------------------------------------------------------------------------
Welcome to the Wowza Streaming Engine Setup Wizard.

----------------------------------------------------------------------------
Please read the following License Agreement. You must accept the terms of this
agreement before continuing with the installation.

Press [Enter] to continue:
```

以下のメッセージに [Y] キーを入力してインストールします。

  ```
  Start Wowza Streaming Engine automatically [Y/n]: Y
  > 自動的に Wowza Streaming Engine を起動しますか？
  ```

  ```
  Do you want to continue? [Y/n]: Y
  > 入力した情報でインストールを継続しますか？ (インストール前の最終確認)
  ```

### Wowza Streaming Engine へのネットワーク接続確認

Wowza Streaming Engne をインストールすると、以下の Java コンポーネントが動作します。

* **Wowza Streaming Engine**: ストリーミングサーバー本体
* **Wowza Streaming Engine Manager**: ストリーミングサーバーの管理のためのウェブサービス

Wowza Streaming Engine はインストール後の既定の構成では、それぞれのコンポーネントで以下のポート番号を利用します。
インストールした環境に合わせてファイアウォールの設定を行ってください。

| ポート番号 | プロトコル | コンポーネント | 概要 |
| --- | --- | --- | --- |
| 1935 | TCP | Wowza Streaming Engine | ストリーミング用の既定のポート |
| 8086 | TCP | Wowza Streaming Engine | 管理インターフェス用の既定のポート |
| 8087 | TCP | Wowza Streaming Engine | REST API 用の既定のポート |
| 8088 | TCP | Wowza Streaming Engine Manager | 管理ウェブサービス用の既定のポート |

Wowza Streaming Engine に正しくアクセスできるかどうか、以下のコマンドを実行することで確認できます。

```bash
curl http://[hostname or ip address]:1935/ServerVersion
curl http://[hostname or ip address]:8086/ServerVersion
```

正しくアクセスできた場合は、以下の出力が確認できます。

```
<html><head><title>Wowza Streaming Engine 4 Trial Edition (Expires: Apr 15, 2023) 4.8.21+6 build20230125151621</title></head><body>Wowza Streaming Engine 4 Trial Edition (Expires: Apr 15, 2023) 4.8.21+6 build20230125151621</body></html>
```

Wowza Streaming Engine をインストールすると、ビデオ・オンデマンド (`vod`) とライブ (`live`) のタイプの
単一サーバーアプリケーションがインストールされますので、これを利用します。

その他のアプリケーションタイプが用意されており、スケーラービリティの高い構成を行うこともできます。

### Wowza Streaming Engine の管理 UI (Wowza Streaming Engine Manager) へのアクセス

Wowza Streaming Engine をインストールすると、管理のためのウェブサービス (管理 UI) もインストールされます。
ブラウザーで以下のURLにアクセスし、設定した管理 UI のユーザー名とパスワードでログインすると、管理画面が表示されます。

```
http://[hostname or ip address]:8088/
```

![Wowza Streaming Engine Manger UI](https://shigeyf.dev/posts/_streaming/get-started-wowza-streaming-engine/wowza-streaming-engine-manager-ui-top.jpg)

### 外部公開のホスト名・IPアドレスの設定

インストールした環境がクラウド環境やコンテナ環境の場合、ホストのIPアドレスと外部に公開されているIPアドレスが異なる場合があります。
この場合、以下のコマンドを実行して VHost.xml を書き換ることで、管理 UI のトップ画面で **[Test Player]** ボタンを押した際に、
外部公開のURLが正しく表示されるようになります。

```bash
sudo mv /usr/local/WowzaStreamingEngine/conf/VHost.xml /usr/local/WowzaStreamingEngine/conf/VHost.xml.old
sudo xmlstarlet edit --update "/Root/VHost/Manager/TestPlayer/IpAddress" --value "[hostname or ip address]" /usr/local/WowzaStreamingEngine/conf/VHost.xml | xmlstarlet format -t > /usr/local/WowzaStreamingEngine/conf/VHost.xml.new
```

### ビデオ・オンデマンド サンプルコンテンツの再生

インストールした Wowza Streaming Engine には、`<install-root>/content` フォルダにサンプルコンテンツが含まれています。
HTTP 経由でサンプルコンテンツの再生を行います。

サンプルコンテンツの再生 URL は、管理 UI のトップ画面で **[Test Playback...]** ボタンを押すと表示されます。

* HLS: [http://[hostname or ip address]:1935/vod/mp4:sample.mp4/playlist.m3u8](http://your-hostname:1935/vod/mp4:sample.mp4/playlist.m3u8)
* MPEG-DASH: [http://[hostname or ip address]:1935/vod/mp4:sample.mp4/manifest.mpd](http://your-hostname:1935/vod/mp4:sample.mp4/manifest.mpd)
* RTMP: [rtmp://[hostname or ip address]:1935/vod/mp4:sample.mp4](rtmp://your-hostname:1935/vod/mp4:sample.mp4)
* RTSP: [rtsp://[hostname or ip address]:1935/vod/mp4:sample.mp4](rtsp://your-hostname:1935/vod/mp4:sample.mp4)

> **注意**: インストール直後の状態は、HTTPS (TLS) サーバー証明書の発行・設定を行っていないため、HTTPS 経由で再生することはできません。
> 別の記事で、TLS 証明書の設定方法を紹介します。

[Wowza Test Player](https://www.wowza.com/testplayers) で HTTP のサンプルコンテンツは再生できないため (以下の注意点を参照)、
この記事では、オープンソースの [Web プレイヤー (http://testplayer.demo.liveinstantly.cloud/)](http://testplayer.demo.liveinstantly.cloud/) を
使って、HLS, MPEG-DASH のコンテンツの再生を確認します。

![Webプレイヤーでのストリームの再生](https://shigeyf.dev/posts/_streaming/get-started-wowza-streaming-engine/wowza-streaming-engine-playback-with-web.jpg)

> **注意**: Wowza Test Player 以外にも様々な組織や企業が提供しているほとんどの Web ベースのテスト用ストリーミングプレイヤーは
> HTTPS でホストされていますが、ほぼすべてのブラウザーが HTTP/HTTPS 混在のウェブコンテンツのブラウジングを許可しないため、
> それらのプレイヤーでは HTTP コンテンツの再生ができません。

また、[VLC メディアプレイヤー](https://www.videolan.org/vlc/index.ja.html)を使うと、HLS, MPEG-DASH 以外にも、RTMP/RTSP の
各ストリーミングプロトコルの再生確認ができますので、[VLC メディアプレイヤー](https://www.videolan.org/vlc/index.ja.html)も
使って確認します。

メニューバーから **[Media]** -> **[Open Network Stream...]** を選択し、以下の URL を入力して再生することができます。

![VLCでのストリームの再生](https://shigeyf.dev/posts/_streaming/get-started-wowza-streaming-engine/wowza-streaming-engine-playback-with-vlc.jpg)