Kurento Media Server용 Filter Module을 샘플 앱에 통합
개요
지난번 절차에서 만든 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
필터 프로그램 업데이트가 가능했습니다.
Reference
이 문제에 관하여(Kurento Media Server용 Filter Module을 샘플 앱에 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Otama75/items/e7f1c9656f73dbe28073텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)