概要
前回の手順で作成した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/
フィルタの処理内容を更新する
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
フィルタのプログラムの更新ができた。
