これは旧eviry tech blogから移行した記事です。
こんにちは、yurakawaです。
millviでは動画配信の一部にWowza Streaming Engine(以下WSE)というメディアサーバを利用しています。 WSEは、機能を拡張するためにモジュールを開発することができ、その支援ツールとしてWowzaIDEというEclipseのアドオンが公開されています。 - How to extend Wowza Streaming Engine using the Wowza IDE
今回は提供されているWowza IDEではなく、IntelliJ IDEA(以下IntelliJ)でモジュール開発する際のデバッグの設定を紹介します。
前提
macOSから vagrant で linux仮想マシンを立ち上げて、guest os 上に WSE をインストールしている。
- WSE を host os に直接インストールしても、dockerなんかのコンテナ上にインストールしても大きな違いはありません。
- guest os内のsyncフォルダ上にWSEをインストールして、host os側 で IDE で開くようにすると取り回しやすいです。
WSE インストール方法
環境
- guest os: CentOS 7.4
- WSE: V4.7.3
Wowzaサーバ側のデバッグ機能を有効にする
- /usr/local/WowzaStreamingEngine/bin/startup.shを編集し、以下の記述を追加
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 com.wowza.wms.bootstrap.Bootstrap start
[root@localhost bin]# diff startup.sh{,.org} 44c44 < $_EXECJAVA $WMSTUNE_OPTS $JMXOPTIONS -Dcom.wowza.wms.runmode="$mode" -Dcom.wowza.wms.native.base="linux" -Dcom.wowza.wms.AppHome="$WMSAPP_HOME" -Dcom.wowza.wms.ConfigURL="$WMSCONFIG_URL" -Dcom.wowza.wms.ConfigHome="$WMSCONFIG_HOME" -cp $WMSAPP_HOME/bin/wms-bootstrap.jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 com.wowza.wms.bootstrap.Bootstrap start --- > $_EXECJAVA $WMSTUNE_OPTS $JMXOPTIONS -Dcom.wowza.wms.runmode="$mode" -Dcom.wowza.wms.native.base="linux" -Dcom.wowza.wms.AppHome="$WMSAPP_HOME" -Dcom.wowza.wms.ConfigURL="$WMSCONFIG_URL" -Dcom.wowza.wms.ConfigHome="$WMSCONFIG_HOME" -cp $WMSAPP_HOME/bin/wms-bootstrap.jar com.wowza.wms.bootstrap.Bootstrap start
プロジェクトを Wowza IDE で作成後 IntelliJ で開きなおす
projectの雛形を作るのは Wowza IDE を使います。
How to extend Wowza Streaming Engine using the Wowza IDE
IntelliJのデバッグ設定
- Run -> EditConfigurations を開く
- Remoteを追加
- Port を 1044, Hostをwowzaサーバのipかhostname に変更
管理画面(or Application.xml)から作成したプロジェクトをモジュールとしてアプリケーションに登録する
- Applications > [APP_NAME] > Modules > edit > +Add Module と遷移する
- 以下のように自分のプロジェクトを登録する
- e.g. MyWowzaModuleの場合 Name: MyWowzaModule Description: MyWowzaModule Fully Qualified Class Name: com.mycompany.module.MyWowzaModule
参考: https://www.wowza.com/docs/how-to-extend-wowza-streaming-engine-using-the-wowza-ide#addtoWSE
デバッグする
すでに起動している WowzaStreamingEngine プロセスがあれば停止する
sudo /etc/init.d/WowzaStreamingEngine stop
サーバ側でstart.sh を実行する
sudo /usr/local/WowzaStreamingEngine/bin/startup.sh
1044ポートがリッスンしていることを確認する
$ sudo netstat -tanp | grep 1044 tcp 0 0 0.0.0.0:1044 0.0.0.0:* LISTEN 4713/java
最後に IntelliJ でブレイクポイントをつけてデバッグ実行して、ブレイクポイントで停止すれば成功です。
以上、みなさんも IntelliJ で Let's Debug