Kurento Media Server용 Filter Module을 샘플 앱에 통합

7829 단어 쿠렌토WebRTC

개요



지난번 절차에서 만든 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

필터 프로그램 업데이트가 가능했습니다.

좋은 웹페이지 즐겨찾기