#kurento
#kurento
Вопрос:
Я изучаю, как создать пользовательский модуль Kurento, следуя приведенному здесь руководству: http://doc-kurento.readthedocs.io/en/stable/mastering/develop_kurento_modules.html
В качестве ускоренного подхода к обучению я клонировал клиент java и модуль C из Github, который используется в учебном пособии Chroma: http://doc-kurento.readthedocs.io/en/stable/tutorials/java/module-chromafilter.html
Мне удалось успешно создать и запустить модуль Chroma.
Итак, следующее, что я попытался сделать, это внести простые изменения в исходные коды, make-файлы и т. Д., переименовав все вхождения «chroma» в «emotion» («Chroma» в «Emotion», «CHROMA» в «EMOTION»), включая имя модуля и имена функций / методов. Цель состоит в том, чтобы запустить точно такой же учебник по цветности, за исключением того, что я могу быть уверен, что теперь он выполняет вызовы API для моего нового пользовательского модуля (который тоже должен функционировать точно так же).
После долгих усилий я смог успешно скомпилировать как пользовательский модуль C (kms-emotion), так и клиентское приложение Java (kurento-emotion).
Однако, похоже, что-то все же не так. Я не получаю видео из удаленного потока в браузере. Просматривая журналы в /var/log/kurento-media-server, появляется эта ошибка:
2016-10-17 19:27:48,204852 3488 [0x00007f0e8cff9700] debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage() Message: >{"id":5,"method":"create","params":{"type":"EmotionFilter","constructorParams":{"mediaPipeline":"6842e4d3-782a-4ce7-8617-9daf72a0b1d4_kurento.MediaPipeline","window":{"topRightCornerY":5,"__module__":"emotion","topRightCornerX":5,"height":40,"__type__":"WindowParam","width":40}},"properties":{},"sessionId":"3fe8b253-c4c1-421f-bddb-b6f2c6674683"},"jsonrpc":"2.0"}<
2016-10-17 19:27:48,206450 3488 [0x00007f0e8cff9700] error filterelement kmsfilterelement.c:139 kms_filter_element_set_filter() <kmsfilterelement0> Invalid factory "emotion", element cannot be created
2016-10-17 19:27:48,206895 3488 [0x00007f0e8cff9700] debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage() Response: >{"error":{"code":40108,"data":{"type":"MEDIA_OBJECT_NOT_AVAILABLE"},"message":"Media Object not available"},"id":5,"jsonrpc":"2.0"}
Я собрал и установил свой модуль (libkmsemotionmodule.итак) в нужном месте (как показано ниже) и перезапустил медиасервер kurento..
$ ls -l /usr/lib/x86_64-linux-gnu/kurento/modules/total 848
-rw-r--r-- 1 root root 26920 Sep 10 18:55 libkmschromamodule.so
-rw-r--r-- 1 root root 121128 Oct 1 00:12 libkmscoremodule.so
-rw-r--r-- 1 root root 35112 Sep 10 19:01 libkmscrowddetectormodule.so
-rw-r--r-- 1 root root 104744 Oct 1 01:33 libkmselementsmodule.so
-rw-r--r-- 1 root root 503539 Oct 17 18:57 libkmsemotionmodule.so
-rw-r--r-- 1 root root 39192 Oct 1 02:14 libkmsfiltersmodule.so
-rw-r--r-- 1 root root 26904 Sep 10 18:58 libkmsplatedetectormodule.so
В чем может быть проблема?
Комментарии:
1. хорошо, просто чтобы добавить … я обнаружил, что могу повторить ту же ошибку с оригинальным модулем kurento chroma, получив его из git и скомпилировав … моя процедура компиляции kms-chroma выглядит следующим образом .. 1) git clone github.com/Kurento/kms-chroma.git 2) cd kms-chroma 3) сборка mkdir 4) сборка cd 5) смейк .. -DCMAKE_INSTALL_PREFIX=/usr amp;amp; make 6) sudo make install 7) служба sudo kurento-media-server-остановка 6.0 8) служба sudo kurento-media-server-запуск 6.0
2. если я установлю его через «sudo apt-get install kms-chroma-6.0″… модуль работает нормально… так что же я пропустил …?
Ответ №1:
хорошо … мне удалось найти проблему … в моей системе установлен OpenCV 3.1 … и кажется, что модуль несовместим (или конфликтует) с OpenCV 3.1, хотя проблем с компиляцией не было… когда я загрузил исходный код и собрал OpenCV 2.4.13.1 в своей системе и перекомпилировал модуль… теперь он может запускаться…
это может быть проблемой для меня, потому что я пытаюсь интегрировать некоторые существующие приложения на C в качестве пользовательского модуля kurento и предоставить его функциональность веб-приложению… и приложение использует OpenCV 3.x … но это будет отдельной проблемой…