eviry tech & service blog

「株式会社エビリー」の社員ブログです。弊社では、クラウド型動画配信サービス「millvi」、ソーシャル動画データ及び分析サービス「kamui tracker」、YouTube総合メディア「かむなび」を開発・提供しています。https://eviry.com/

IntelliJ IDEA で Wowza Module をデバッグする

これは旧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のデバッグ設定

  1. Run -> EditConfigurations を開く
  2. Remoteを追加
  3. Port を 1044, Hostをwowzaサーバのipかhostname に変更

管理画面(or Application.xml)から作成したプロジェクトをモジュールとしてアプリケーションに登録する

  1. Applications > [APP_NAME] > Modules > edit > +Add Module と遷移する
  2. 以下のように自分のプロジェクトを登録する
- 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

デバッグする

  1. すでに起動している WowzaStreamingEngine プロセスがあれば停止する sudo /etc/init.d/WowzaStreamingEngine stop

  2. サーバ側でstart.sh を実行する sudo /usr/local/WowzaStreamingEngine/bin/startup.sh

  3. 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

参考URL