PSA: All Kurento modules and filters are now available again

512 views
Skip to first unread message

Juan Navarro

unread,
Jun 30, 2020, 7:54:32 AM6/30/20
to kurento
Hi, some updates regarding Kurento filters, that had been broken for a while:


  • All plugins using HTTP are working again. This includes the ImageOverlayFilter, which is used by FaceOverlayFilter, both available from kms-filters (a demo of the FaceOverlayFilter can be seen with the WebRTC Magic Mirror tutorial).

These had been removed since Kurento 6.10, because it was difficult to make them build in Ubuntu 16.04 and 18.04 at the same time. But the issues have been sorted out, and they are now available again.

You will have to use Nightly Builds of Kurento (and its client SDKs) to get them, until they get released as part of Kurento 6.15 (no scheduled date yet). To update a KMS installation from Release to Nightly, follow the instructions given in the Local Upgrade doc section.

Remember that these "extra" modules are provided exclusively with demonstration purposes.



Regarding the OpenCV issues in Ubuntu 18.04:

One BIG problem we have to upgrade from Ubuntu 16.04 to 18.04 is that our OpenCV plugin code needs a good revision and update. As far as I understand, Kurento was written against an old OpenCV C API, which has now been deprecated (but not removed) in favor of a more modern C++ API. Fortunately, our code still builds, even against the OpenCV 3.2 version that comes with Ubuntu 18.04. But some plugins are broken.

For example the FaceDetector plugin (in kms-filters) uses some machine learning training data (Haar Cascades), which since OpenCV 3.x has to be loaded with the newer C++ API, not the older C one. So Kurento is not able to load it and detect faces on Ubuntu 18.04, but it works fine with the training data that comes with OpenCV 2.x in Ubuntu 16.04.

I imagine with 20.04 the situation only gets worse. It comes with OpenCV 4.2, so we're bound to yet more breakage, possibly.

Bottom line is: if you want to see the OpenCV demonstration plugins in action, please run them under Ubuntu 16.04. Pull Requests welcome to make them work also in Ubuntu 18.04 (OpenCV 3.x)! :-)

Andres Tello

unread,
Jun 30, 2020, 12:34:20 PM6/30/20
to kurento
Did an update to the lastest... and I'm still unable to make the recording to http work. 
 
I can only record to local files.  

I verified KMS can access HTTP server. 
 
I'm using HTTP instead of HTTPS to avoid cert issues with curl
 
Kurento logs, show no error, but http server get't no info.

any advise is welcome. 

Juan Navarro

unread,
Jul 2, 2020, 8:41:38 AM7/2/20
to kurento
On Tuesday, June 30, 2020 at 6:34:20 PM UTC+2, Andres Tello wrote:
Did an update to the lastest... and I'm still unable to make the recording to http work. 
 
I can only record to local files.  

I verified KMS can access HTTP server. 
 
I'm using HTTP instead of HTTPS to avoid cert issues with curl
 
Kurento logs, show no error, but http server get't no info.

Carlos Navarro

unread,
Jul 2, 2020, 5:02:25 PM7/2/20
to kur...@googlegroups.com
As far as I understand the KMS docker image would be still built over Ubuntu 16.04, right?
And also in this version the extra modules won't work until KMS 6.15 either (or nightly builds), right?
Thanks!

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/9746fccf-20cf-4a5a-8965-f6d963ef3823o%40googlegroups.com.

Juan Navarro

unread,
Jul 3, 2020, 6:32:35 AM7/3/20
to kur...@googlegroups.com
Yes, the Docker images are built based on Ubuntu 16.04.
And this change will become visible either with release 6.15, or with current nightly builds.

Docker images also have nightly builds, they are just in a different repo:
https://hub.docker.com/r/kurento/kurento-media-server-dev
(notice the "-dev" in the name)

--
Juan Navarro
Kurento maintainer & developer
j1elo @ GitHub and Twitter

Carlos

unread,
Sep 12, 2020, 10:11:14 AM9/12/20
to kurento
Hi,

I'm facing issues to use the modules in JS. I'm using the docker-dev version:
Kurento Media Server version: 6.14.1~6.g019a7fc
Found modules:
    'chroma' version 6.14.1~16.ga3ca67d
    'core' version 6.14.1~6.g6e9423a
    'crowddetector' version 6.14.1~15.g508176e
    'elements' version 6.14.1~4.gf37243c
    'filters' version 6.14.1~1.g3a8d8a7
    'platedetector' version 6.14.1~22.g3ce9f01
    'pointerdetector' version 6.14.1~14.ga6f1bf0


However when I try to register following the documentation:
kurentoClient.register('kurento-module-chroma');
I get an "undefined" object. Then, when getting ComplexType:
kurentoClient.getComplexType('chroma.WindowParam');
returns "Unknown type '[object Object]'". I guess because of the fail registering.

If I get client object and then a ServerManager object, I can see the Chroma module:
client = yield kurentoClient(self.args.ws_uri);
client.getServerManager().then(function (serverManager){
    return serverManager.getInfo();
}).then(function (info){
    var serverModules = info.module.map(function (module){
        console.debug(module);
    })
});
This return among others:
{
"__module__": "kurento",
"__type__": "ModuleInfo",
"factories": ["ChromaFilter"],
"generationTime": "Sep 09 2020 12:33:18",
"name": "chroma",
"version": "6.14.1~16.ga3ca67d"
}

What am I missing?

Thanks.

Carlos Navarro

unread,
Sep 16, 2020, 11:02:29 AM9/16/20
to kur...@googlegroups.com
Any hint about this? It seems pretty basic but I cannot find anything about it...

Juan Navarro

unread,
Sep 17, 2020, 5:00:13 AM9/17/20
to kur...@googlegroups.com
I had to adjust a bit the source URL where to get the background image (already pushed to Node tutorials), but I have been able to run the chroma example without any issues, with the Docker image kurento/kurento-media-server-dev:latest and the instructions from kurento-chroma tutorial. Maybe the text contains some mistake? Because the code definitely works for me.
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/1VOK0c2O4b4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/CALK7kUkhfDENcHojc_QLGT00-J-NWr%3D1-zAj_F2BULv1iDmrbw%40mail.gmail.com.

Carlos Navarro

unread,
Sep 17, 2020, 12:19:10 PM9/17/20
to kur...@googlegroups.com
It took a while. As I expected, I was missing something basic. So just in case somebody else gets here:

I'm not using (yet) NodeJS but the browserJS version, and with NodeJS all dependencies are installed (way easier). I reread the source code from kurento-client.js and then I understood that modules need also a client part (it didn't seem that obvious to me :) ). Completely following the Chroma Tutorial from the beginning one downloads the kurento-module-chroma.js, but from an old installtion I didn't download the full source code, instead I followed the code pasted in the tutorial.
When I found the Chroma Tutorial source code then I got the Chroma repository for bower: https://github.com/Kurento/kurento-module-chroma-bower
Once downloaded and installed I placed the JS file in the same directory as kurento-client.js and included the file in the HTML declaration.

Thanks.

Regards.

Carlos Navarro

unread,
Sep 21, 2020, 10:07:53 AM9/21/20
to kur...@googlegroups.com
Hi again,

Just to confirm. Using the module all the background image is showing always pixeled, alternating real background and image-replaced background, so unless the background is completely uniform, with the same uniform light (almost imposible), the filter is almost unusable for real life (I expected something like in Zoom or Teams). I understand the filter is basic and I'd just like to ask if this is the expected behaviour because it's just to give an idea of the possibilities, not a real filter use; or if there is something wrong with my configuration (just using the default window param). So isn't this filter a kind of "fork" of a widely-used Gstreamer or OpenCV filter? Or is it something basic you have developed by yourself and for something more usable we need to program our own?

Thanks

Regards

Micael Gallego

unread,
Sep 21, 2020, 12:24:07 PM9/21/20
to kur...@googlegroups.com
The filter works as it is implemented. It is a demo filter.

If you want the same behavior as Teams or Zoom, you will have to implement a new filter using advanced computer vision techniques. 

Regards

Juan Navarro

unread,
Sep 23, 2020, 3:06:38 PM9/23/20
to kur...@googlegroups.com
On 21/9/20 16:06, Carlos Navarro wrote:
it's just to give an idea of the possibilities, not a real filter use

That's exactly the case. The filter showcases integration with OpenCV, but the actual code is just as dummy as it gets: look for a given color, and try to replace it with a given background image.

Real-World (tm) background substitution would have to use much more advanced techniques such as detecting color gradients, sharp edges, changes in lightning, or (more probably) a mixture of all these and more. Even, as of today the best background replacers are using some kind of machine learning to "know" what is the shape of a person and help it with the detection of the person's edge.

Regards,
--
Juan Navarro
Kurento developer
Connect: @j1elo at GitHub & Twitter
Reply all
Reply to author
Forward
0 new messages