LoginSignup
0

More than 3 years have passed since last update.

Kurento Media Server用Filter Moduleをサンプルアプリへ統合する

Last updated at Posted at 2018-10-16

概要

前回の手順で作成したFilter Moduleを、Kurento Media Serverのサンプルアプリへ統合する。

アプリへの統合の作業

Kurentoのインストール時に動かしたtutorialのサンプルアプリ「kurento-magic-mirror」のフィルタを今作成したCustomFilterに置き換えてみる。

Detached HEAD 6.7.1のからブランチする。(masterのままでは実行できない。)

$ cd kurento-tutorial-java/kurento-magic-mirror
$ git checkout -b 'custom_filter'

pom.xmlには先ほど確認したJavaアプリケーション用のモジュールとの依存関係を追加する。

$ vim pom.xml
------- pom.xml -------
# <dependencies>の中に追加
<dependency>
    <groupId>org.kurento.module</groupId>
    <artifactId>customfilter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
-----------------------

アプリケーションプログラムの書き換え。元あったFaceOverLayFilterをCustomFilterに置き換える。

$ cd src/main/java/org/kurento/tutorial/magicmirror
$ cp MagicMirrorHandler.java MagicMirrorHandler.java.org
$ vim MagicMirrorHandler.java
----------------------------------MagicMirrorHandler.java-----------------------------------
+//import org.kurento.client.FaceOverlayFilter;
+import org.kurento.module.customfilter.CustomFilter;

//Media logic
+//FaceOverlayFilter faceOverLayFilter = new FaceOverlayFilter.Builder(pipeline).build();
+CustomFilter customFilter = new CustomFilter.Builder(pipeline).build();

+//faceOverlayFilter.setOverlayedImage(appServerUrl + "/img/mario-wings.png", -0.35F, -1.2F,
+// 1.6F, 1.6F);

-webRtcEndpoint.connect(faceOverlayFilter);
-faceOverlayFilter.connect(webRtcEndopint);
+webRtcEndpoint.connect(customFilter);
+customFilter.connect(webRtcEndpoint);
--------------------------------------------------------------------------------------------

コンパイルして実行

$ cd ~/kurento/kurento-tutorial-java/kurento-magic-mirror
$ mvn clean compile exec:java -Dkms.url=ws://localhost:8888/kurento

Chromeブラウザから、サーバにアクセス。

https://<host_ip>:8443/

うまく動けば、エッジ検出フィルタが動作する。
3_opencv_filter.png

フィルタの処理内容を更新する

CustomFilterのCustomFilterOpenCVImpl.cppを修正して、フィルタの処理内容を改変する。

$ cd ~/kms/custom-filter/src/server/implementation/objects
$ vim CustomFilterOpenCVImpl.cpp

以下ようにCustomFilterOpenCVImpl::process関数の一番最後に円を書く処理を追加する。

CustomFilterOpenCVImpl.cpp
void CustomFilterOpenCVImpl::process (cv::Mat &mat)
{
  cv::Mat matBN (mat.rows, mat.cols, CV_8UC1);
  cv::cvtColor(mat, matBN, COLOR_BGRA2GRAY);

  if (filterType == 0) {
    Canny (matBN, matBN, edgeValue, 125);
  }
  cvtColor (matBN, mat, COLOR_GRAY2BGRA);
  // Green circle
  cv::circle(mat, cv::Point(200, 250), 120, cv::Scalar(0,200,0), 8, 8);
}

コンパイルとインストール

$ cd ~/kms/custom-filter/build
$ make
$ sudo make install

tutorialのkurento-magic-mirrorを起動する。

$ cd kms/kurento-tutorial-java/kurento-magic-mirror/
$ mvn clean compile exec:java -Dkms.url=ws://localhost:8888/kurento

フィルタのプログラムの更新ができた。

4_filter_modify.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0