Wowza
Wowza Media System 社の動画ストリーミングサーバ。有料。
コンテナは RTMP, RTP, MPEG-TS, HLS, HDS, MSS, DASH をサポート。コーデックは、H.264, H.265, AAC をサポートしています。
無料で機能評価が可能です。2種類(通常,開発者)のライセンスが提供されています。
通常ライセンス: 機能制限付きの180日間のフリートライアルが試せます 。こちらのライセンスでは HLS, MPEG-DASH が利用できません。
- Industrial-strength streaming video server
- Includes Transcoder, nDVR, DRM features
- Trial version limited to 3 inbound, 10 outbound connections
- Trial version does not include HTTP Origin functionality
開発者ライセンス: HLS, MPEG-DASH などをテストする場合は、開発者向けの 180日間のフリートライアルライセンス を使用する必要があります。
For those users who need to develop, test, create, and validate solutions using Wowza software, Wowza provides a 180-day Developer License. This license is intended for long-term development tasks; it includes one (1) license key for one (1) server instance. More than one key can be requested for origin-edge configurations. One license allows up to three inbound connections and ten total connections, and limited access to all AddOns. Simply complete this form and you will receive a Developer license key by email.
サポートしている OS は、Windows, Mac, Linux。必要な項目を入力すると、 E-Mail でダウンロード先と、トライアルキーが送付されてくるので、 ダウンロードしインストールを行います。
インストールの中に、Wowza の管理者(admin)アカウントを作成する画面が表示されますので、適当な user/pass を設定します(これは OSの user/pass とは別のものです)
Wowza Streaming Engine を自動起動する場合はチェックします。通常はそのままにします。
チェックを外すと、Stand Alone モードになります。 Stand Alone モード では、 動画の配信元のアドレスが 127.0.0.1:1935 になります。[要確認]
インストールが完了すると、 http://localhost:8088/enginemanager/ftu/welcome.htm が立ち上がり、簡単な機能紹介が始まります。
次の画面では、インストール時に設定した admin の user/pass を入力します。
ライブストリーミングをする場合は、以下の画面でソースユーザ名とパスワードを設定します。
この情報は RTMPとRTSPで必要になるようです。 RTMPとRTSPを利用しない場合は不要と思われますが[要出典]、とりあえず適当に設定しておきます。
入力が終わると、Webフロントエンド(ダッシュボード)が起動します。
理由は不明ですが、en0 が wifi だと起動しない事があります。
起動しない場合は en0 をLAN に切り替え再起動してみてください。
ダッシュボードにある TestVideo をクリックすると、サンプル動画が再生されます。
Wowza サーバの停止/起動は、{wowza-install-dir}/bin 以下のコマンドで行います。
シェルのalias に wowza のパス {wowza-install-dir} を登録しておくと良いでしょう。
alias wowza="/Library/WowzaStreamingEngine"
Wowza は、GUIフロントエンドを司る Wowza Streaming Engine Manager と、ストリーミングサーバ(Wowza Streaming Server)の2種類のサーバを起動しています。
必要に応じてサーバをそれぞれ停止/再起動を行います。
以下は Mac でサービスモードで起動している場合の例です。
(インストール時に自動起動を選択した場合はこちらを使って停止/起動を行います)
起動/停止コマンドは OS毎に異なります、 http://www.wowza.com/forums/content.php?631-How-to-start-and-stop-Wowza-Streaming-Engine-software を参照してください。
# 停止(Mac)
$ sudo launchctl unload -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngineManager.plist
# 停止(Linux)
$ sudo service WowzaStreamingEngineManager stop
or
$ /etc/init.d/WowzaStreamingEngineManager stop
# 起動(Mac)
$ sudo launchctl load -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngineManager.plist
# 起動(Linux)
$ sudo service WowzaStreamingEngineManager start
or
$ /etc/init.d/WowzaStreamingEngineManager start
以下は Mac でスタンドアローンモードで起動している場合の例です。
$ wowza # /Library/WowzaStreamingEngine に移動。 cd /Library/WowzaStreamingEngine 相当
# 停止
$ sudo ./manager/bin/shutdownmgr.sh # Manageer
$ sudo ./bin/shutdown.sh # ストリーミングサーバ
# 起動
$ sudo ./manager/bin/startmgr.sh # port 8088 を listen します
$ sudo ./bin/startup.sh
- 既に 1935 が利用されているためエラーになる
sudo lsof -n -P -i:1935
を実行し、プロセスを確認します- Wowza が RTMP を出力するように設定されている状態で、ポート 1935 が Wowza 以外のプロセスで listen されているとサーバが起動中にエラーになります。
- 1935 を開放し、サーバをリスタートする必要があります。
- いろいろやっても分からなければ、いろいろと再起動しましょう
- 既に 8088 が利用されているためエラーになる
- 設定を変更すると回避可能らしいのですが、よくわかっていません
- 既に 8087 が利用されているためエラーになる
- 設定を変更すると回避可能らしいのですが、よくわかっていません
IPアドレスの変更は、{wowza-install-dir}/conf/VHost.xml で行います。反映には Wowza サーバの再起動が必要です。
Mac: /Library/WowzaStreamingEngine/conf/VHost.xml
[ここ未確認です]
{wowza-install-dir}/uninstall.app を実行します。
アンインストールを実行しても、ユーザの資産とも言える conf と content ディレクトリはそのまま残されています。 これらが不要な場合はついでに削除しましょう。
Mac: /Library/WowzaStreamingEngine/conf, content
Wowza は デフォルトの状態でも配信できますが、 Application を追加することでカスタマイズ(どのフォーマットで配信を行うか、接続数の制限はどうするか等)を行う事ができます。
Application名 に MyLive を設定するとこのようになります
CORS を回避するには、{wowza-install-dir}/conf/[application]/Application.xml
に設定を追加します。 application
の部分には作成ずみのApplication名(例: MyLive
)が入ります。
- Mac: /Library/WowzaStreamingEngine/conf/[application]/Application.xml
- Linux: TBD
以下は CORS を回避するために必要な最小限の設定です。
<HTTPStreamer>
<Property>
<Name>cupertinoUserHTTPHeaders</Name>
<Value>Access-Control-Allow-Origin: *</Value>
</Property>
</HTTPStreamer>
HSL を利用する場合は以下のように設定すると良いとの事
<HTTPStreamer>
<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
<Properties>
<Property>
<Name>cupertinoUserHTTPHeaders</Name>
<Value>Access-Control-Allow-Origin: *|Access-Control-Allow-Methods: GET, POST, OPTIONS|Access-Control-Expose-Headers: Content-Length|Access-Control-Allow-Headers: Range</Value>
</Property>
</Properties>
</HTTPStreamer>
設定を変更した場合は、Application 選択画面の右上に表示されている [Restart]
ボタンをクリックすると設定が反映されます
CORS 設定を行った状態で、手元で curl -v -H "Origin: http://example.com" {end-point-url}
を実行し、以下の CORS 関係のヘッダが含まれていれば設定完了です。
# HLS 確認用
# server-addr:port app stream
# ~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~
$ curl -v -H "Origin: http://example.com" http://192.168.1.100:1935/live/stream/playlist.m3u8
< Access-Control-Expose-Headers: Content-Length
< Access-Control-Allow-Headers: Range
< Access-Control-Allow-Origin: *
- 参考リンク
[未確認です]