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?
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 –
wenn ich es über "sudo apt-get installieren kms-chroma-6.0" installiere ... funktioniert das Modul gut ... also was habe ich vermisst ...? –