2016-10-17 1 views
1

Ich lerne, wie durch Befolgen der Anleitung hier Kurento benutzerdefinierte Module erstellen: http://doc-kurento.readthedocs.io/en/stable/mastering/develop_kurento_modules.htmlKurento benutzerdefinierte Module: Medienobjekt nicht verfügbar (Code: 40108)

Als Fast-Track-Ansatz beim Lernen, geklont ich den Java-Client und C++ - Modul von Github, das von der Chroma-Lernprogramm verwendet wird: http://doc-kurento.readthedocs.io/en/stable/tutorials/java/module-chromafilter.html

Ich konnte das Chroma-Modul erfolgreich erstellen und ausführen.

Also das nächste, was ich zu tun versuchte, ist, einfache Änderungen an den Quellcodes, Makefiles usw. durch Umbenennen aller Vorkommen von "Chroma" zu "Emotion" ("Chroma" zu "Emotion", "CHROMA" zu " EMOTION ") einschließlich des Modulnamens und der Funktions-/Methodennamen. Das Ziel ist es, genau das gleiche Chroma-Tutorial zu erhalten, außer dass ich sicher sein kann, dass es jetzt API-Aufrufe an mein neues benutzerdefiniertes Modul macht (das genauso funktionieren sollte).

Nach viel Mühe konnte ich sowohl das C++ - Custom-Modul (kms-emotion) als auch die Java-Client-Applikation (kurento-emotion) erfolgreich kompilieren.

Es scheint jedoch immer noch etwas falsch zu sein. Ich erhalte kein Video vom Remote-Stream im Browser. Mit Blick auf die Protokolle in/var/log/kurento-Media-Server, gibt es diesen Fehler:

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"} 

Ich habe gebaut und installiert mein Modul (libkmsemotionmodule.so) an der richtigen Stelle (siehe unten), und startete den Kurento Media Server neu.

$ 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 

Was könnte das Problem sein?

+0

ok nur hinzuzufügen .. Ich fand, dass ich den gleichen Fehler mit dem ursprünglichen k replizieren konnte Urento-Chroma-Modul durch Erhalten von Git und kompilieren es ... mein Verfahren der Zusammenstellung von kms-Chroma ist wie folgt .. 1) Git Klon https://github.com/Kurento/kms-chroma.git 2) cd km-Chroma 3) mkdir bauen 4) cd bauen 5) cmake .. -DCMAKE_INSTALL_PREFIX =/usr && make 6) sudo 7) sudo Service kurento-media-server-6.0 Stopp 8) sudo make install service kurento-media-server-6.0 start –

+0

wenn ich es über "sudo apt-get installieren kms-chroma-6.0" installiere ... funktioniert das Modul gut ... also was habe ich vermisst ...? –

Antwort

0

ok ... ich habe das Problem gefunden ... mein System hat OpenCV 3.1 installiert ... und scheint, dass das Modul nicht mit OpenCV 3.1 kompatibel (oder widersprüchlich) ist, obwohl es kein Problem mit der Kompilierung gab ... wenn ich die Quelle heruntergeladen habe und OpenCV 2.4.13.1 auf meinem System gebaut habe und das Modul neu kompiliert habe ... kann es jetzt laufen ...

das könnte ein Problem für mich sein, weil ich versuche zu integrieren einige existierende C++ Anwendungen als kundenspezifische kurento-Module und ihre Funktionalität der Web-Anwendung zugänglich machen ... und die Anwendung verwendet OpenCV 3.x ... aber das wird ein separates Problem sein ...

Verwandte Themen