KMS for Ubuntu 20.04

3,000 views
Skip to first unread message

Maxim Solodovnik

unread,
Jan 14, 2020, 11:14:07 AM1/14/20
to kurento
  • Operating system --> Ubuntu 20.04 // Ubuntu Focal Fossa (development branch)
  • Installation method (apt-get, Docker, AWS CloudFormation) --> apt-get
  • Kurento version --> 6.12, 1.13, dev
Hello,

I do understand it might be too early to ask
But ...
I have accidentally updated to Ubuntu 20.04 and everything seems to work as expected
Except KMS :( it fails to be installed due to conflict in library versions (libgdal20 and it;s dependencies)

Maybe there are some dev preview version I can try to install for development purposes? (docker is an option but I would prefer to have "hard copy" :)))

Thanks in advance

Juan Navarro

unread,
Jan 14, 2020, 3:27:31 PM1/14/20
to kur...@googlegroups.com
How do you manage to upgrade accidentally to Ubuntu 20.04, 4 months before 20.04 is released?

Anyway, we have porting to 18.04 as the near future objective as part of the open-source effort, so don't expect 20.04 anytime soon.

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

--
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/345ed63b-f22d-46e9-a843-1ad696a31bd1%40googlegroups.com.

Maxim Solodovnik

unread,
Jan 15, 2020, 4:18:58 AM1/15/20
to kurento
I have installed Ubuntu 18.04 and did `do-release-upgrade -d` was hoping to update to 19.10, but 20.04 preview was installed :)))
Ok
will work with docker
Are there any options to subscribe to some early bird testing?


On Wednesday, January 15, 2020 at 3:27:31 AM UTC+7, Juan Navarro wrote:
How do you manage to upgrade accidentally to Ubuntu 20.04, 4 months before 20.04 is released?

Anyway, we have porting to 18.04 as the near future objective as part of the open-source effort, so don't expect 20.04 anytime soon.

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

On 14/1/20 17:14, Maxim Solodovnik wrote:
  • Operating system --> Ubuntu 20.04 // Ubuntu Focal Fossa (development branch)
  • Installation method (apt-get, Docker, AWS CloudFormation) --> apt-get
  • Kurento version --> 6.12, 1.13, dev
Hello,

I do understand it might be too early to ask
But ...
I have accidentally updated to Ubuntu 20.04 and everything seems to work as expected
Except KMS :( it fails to be installed due to conflict in library versions (libgdal20 and it;s dependencies)

Maybe there are some dev preview version I can try to install for development purposes? (docker is an option but I would prefer to have "hard copy" :)))

Thanks in advance
--
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 kur...@googlegroups.com.

Juan Navarro

unread,
Jan 16, 2020, 4:37:33 AM1/16/20
to kur...@googlegroups.com
On 15/1/20 10:18, Maxim Solodovnik wrote:
> I have installed Ubuntu 18.04 and did `do-release-upgrade -d` was
> hoping to update to 19.10, but 20.04 preview was installed :)))
> Ok
> will work with docker
> Are there any options to subscribe to some early bird testing?
Not yet, but I'll write about it in the mail list whenever we have
something that can be at least installed

Maxim Solodovnik

unread,
Jan 16, 2020, 4:40:12 AM1/16/20
to kurento
Will wait for it

Thanks in advance :))

Juan Navarro

unread,
Jan 23, 2020, 4:23:41 PM1/23/20
to kurento
I've "resurrected" the original announcement that was done last year before work on this had to be paused:

PSA: Kurento 7.0 moving to GStreamer 1.14 in Bionic

In that post you'll find the apt-get repository and the Docker image that can be used to start testing Kurento working on Ubuntu 18.04 with the officially distributed version of GStreamer 1.14, i.e. without our old fork of GStreamer 1.8.

Preliminary tests have been promising, WebRTC and PlayerEndpoint seem to be working fine.

The more hands and eyes testing this in real-world scenarios, the better! so any help with testing this new version will be much appreciated :-)

Regards,
Juan

Maxim Solodovnik

unread,
Jan 23, 2020, 9:24:51 PM1/23/20
to kurento
Thanks Juan,

Just tried to install and failed :(
I've added bionic main/universe repos and the only unresolvable dependency seems to be

libopencv-imgcodecs3.2 : Depends: gdal-abi-2-2-3

Without `bionic main/universe repos` there are multiple issues with libboost and some deeper dependencies

I can try to build from sources
(do remember it wasn't easy :((()

Juan Navarro

unread,
Jan 24, 2020, 9:10:20 AM1/24/20
to kur...@googlegroups.com
Hi,

I just tried with a clean Docker container and it worked fine for me, so I'm not sure why it is failing for you...

For more details, these are the exact commands that I've used:

docker run --rm -it ubuntu:18.04
# Inside the new container...
apt-get update
apt-get install --no-install-recommends --yes gnupg
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
deb http://ubuntu.openvidu.io/bionic-gstreamer bionic kms6
EOF
apt-get update
apt-get install --yes kurento-media-server
kurento-media-server --version
    > Kurento Media Server version: 7.0.0~14.g14385d8
    > Found modules:
    >     'core' version 7.0.0~10.g1f1ce74d
    >     'elements' version 7.0.0~25.gfe11a16
    >     'filters' version 7.0.0~10.gf2d83e5



I didn't touch the default repos, but I see that in the Ubuntu container, all optional ones are enabled by default:

$ cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic universe
deb http://archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted
deb http://security.ubuntu.com/ubuntu/ bionic-security universe
deb http://security.ubuntu.com/ubuntu/ bionic-security multiverse


(note, this is after removing all the comments from inside that file, for clarity)
--
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/16fde4af-690a-48d1-a9a1-b9cfe7199de4%40googlegroups.com.

Maxim Solodovnik

unread,
Feb 5, 2020, 2:22:39 AM2/5/20
to kurento
Hello Juan,

I believe the problem is: I'm using Ubuntu 20.04 :)
Will try to install inside docker and will check how it will work

Thanks for detailed steps :))
To unsubscribe from this group and stop receiving emails from it, send an email to kur...@googlegroups.com.

Maxim Solodovnik

unread,
May 7, 2020, 11:47:20 AM5/7/20
to kurento
Hello,

Ubuntu 20.04 is out :)
Maybe I can get some dev version to set up without docker? :)

Micael Gallego

unread,
May 7, 2020, 2:11:51 PM5/7/20
to kur...@googlegroups.com
In the following months we will work on it.

For now, your only possibility is to use docker.

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/2bec14ff-4790-4674-b37b-fafd69d35095%40googlegroups.com.

Maxim Solodovnik

unread,
May 7, 2020, 10:00:35 PM5/7/20
to kurento
Thanks for the update :)

Maxim Solodovnik

unread,
Jul 27, 2020, 2:51:04 AM7/27/20
to kurento
Hello,

Is there any public alpha/beta already available?

Maxim Solodovnik

unread,
Aug 18, 2020, 1:11:55 AM8/18/20
to kurento
ping :))

Maxim Solodovnik

unread,
Dec 10, 2020, 9:45:25 PM12/10/20
to kurento
Hello!

Are there any news on the topic? :)))

Micael Gallego

unread,
Dec 11, 2020, 4:33:58 AM12/11/20
to kur...@googlegroups.com
We recommend now docker image as default installation procedure.

We will consider native 20.04 compatibility with Kurento 7.0.

Best regards



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/0dac0f6c-9cbe-4b26-b519-54ec7d327f2en%40googlegroups.com.

Maxim Solodovnik

unread,
Dec 11, 2020, 5:19:23 AM12/11/20
to kurento
Any estimates on 7.0 release? or maybe RC release? :)))

Micael Gallego

unread,
Dec 11, 2020, 5:23:08 AM12/11/20
to kur...@googlegroups.com
There is no estimation for it...

Maybe during spring/summer of 2021

Andrew Lindzon

unread,
Dec 16, 2020, 9:14:15 AM12/16/20
to kurento
I let my ubuntu update to 20.04 without considering the KMS compatibility, Since the upgrade KMS does not seem to have issues operating.  Are there any problems I should be on the lookout for?

Maxim Solodovnik

unread,
Apr 6, 2021, 1:22:51 AM4/6/21
to kurento
It seems 21.04 is coming ... :))
Maybe we can get some beta to test? :))

Maxim Solodovnik

unread,
Jun 6, 2021, 11:15:17 AM6/6/21
to kurento
Can I kindly ask for an update? :)

fsfdhq qfrfsdfds

unread,
Jun 9, 2021, 3:20:43 AM6/9/21
to kurento
I were leaded here after reading the BigBlueButton Documentation for supporting Ubuntu 20.04, to find out when I can setup my next BigBlueButton Server. The BBB devs are stating, their application is relying on your KMS product and that it needs to be updated to Ubuntu 20.04 before they can do.
So I'm just curious about your 20.04 Support and if that comes with 7.x about that release date.

Thank you for your ongoing work on this software. Stay healthy and have a nice week.
Random fake Account on Google

Juan Navarro

unread,
Jun 9, 2021, 2:59:05 PM6/9/21
to kur...@googlegroups.com
Heh, I liked the sincerity of your signature :)

The latest update on this matter is as follows:

Our team is doubling down in the commercial offerings of scalability, troubleshooting, and other tooling offered by OpenVidu... which so far is helping to provide us with a salary. And, because OpenVidu is a Docker-based application, we're just using the Kurento Docker images, which use Ubuntu 16.04 (Xenial). It works fine that way for us, so I don't think we'll be upgrading to Ubuntu 20.04 any time soon.

Nevertheless, I tried upgrading a while ago and several things break. For example the OpenCV and OpenSSL that comes with newer Ubuntu are not compatible with the GStreamer version we use. So before upgrading the O.S. we first need to upgrade GStreamer and our Computer Vision plugins (or otherwise drop support for them). But for that, some other things need to be changed first, etc... so it's a chain of required upgrades.

There is, however, some work being currently done by some close contributors of Kurento to upgrade GStreamer (dropping our old fork) so maybe the first step is being done already! that would, for sure, make it easier that the next steps are at least considered in our planning. But as I said, that's not something we're actively doing right now.

Regards

Maxim Solodovnik

unread,
May 11, 2022, 3:37:32 AM5/11/22
to kurento
Hello All,

Ubuntu 22.04 was released about a month ago
Are there any news for new KMS? :))))

Juan Navarro

unread,
May 18, 2022, 11:20:59 AM5/18/22
to kur...@googlegroups.com
Maxim Solodovnik wrote:
Ubuntu 22.04 was released about a month ago
Are there any news for new KMS? :))))

As long as the code works as-is (or mostly)...


OK a bit of an update for Kurento 7.0 :-)

After a great push and lots of progress, we have a build of Kurento fully working with much less forks, using the system's installed version of GStreamer 1.16 on Ubuntu 20.04... so we're almost there in terms of getting rid of our own obsolete forks of the ancient GStreamer 1.8 :-)

This is the complete graph of projects that form part of compiling Kurento 7.0 for Ubuntu 20.04:

https://github.com/Kurento/doc-kurento/blob/bionic-gstreamer/source/images/graphs/dependencies-all.dot





However all OpenCV modules stopped compiling due to the new OpenCV 4.0 that comes with Ubuntu 20.04; have a look at the Release Notes for 6.18 which include some more details:

https://doc-kurento.readthedocs.io/en/latest/project/relnotes/v6_18_0.html

On the other hand, most of the code compiled fine with the newer GStreamer, and Kurento seems to work without obvious issues. Everything can be tested with the same repos and Docker images as mentioned originally:


Repo for apt-get (Ubuntu 20.04 Focal):

deb http://ubuntu.openvidu.io/bionic-gstreamer focal kms6


Docker image:

docker run --pull always --rm --name kms --network host kurento/kurento-media-server-exp:bionic-gstreamer


Note that "bionic-gstreamer" (Kurento 7.0) is only API-compatible with Kurento 6.18. There have been multiple API Methods and Events removals, so again refer to the Release Notes of the upcoming 6.18 (to be released during the next days, maybe couple of weeks) to be informed of thos changes.



Lastly: it is a pity, but even still nowadays, we cannot drop altogether our dependencies on custom builds of GStreamer. They decided that changing resolution of a video in the middle of the stream is an out-of-spec thing to do, so it won't be supported. Meanwhile, that's exactly what Chrome does. So when Chrome decides to change resolution, the Recorder breaks if gst-plugins-good hasn't been patched to allow it.

There is an open Merge Request but I doubt the GStreamer maintainers are too happy with this change: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1008



Re: Kurento for 22.04

I tried to build on 22.04, and it didn't go as well as with 20.04... A LOT of unit tests are broken. I guess 22.04, which comes with GStreamer 1.20, at some point got some breaking changes that cause behavioral differences. That doesn't look too good for us... and for now, we won't be sitting down to hunt all those behavior changes (nor we want having to support both versions 1.16 for Ubuntu 20.04, and 1.20 for Ubuntu 22.04). So, support for running Kurento on 22.04 is not on the radar yet. We'll release 7.0 for 20.04, and see how to progress from there.



Hope all this puts a bit of perspective on the current state of things! :-) Our next steps will be to put Kurento 6.18 to test before a formal release, and that will mark the point where Kurento 7.0 is the next planned release, dropping support for old Ubuntu LTS versions (16.04, 18.04) and paving the way to easier to maintain code that uses less custom forks.

Regards,

--
Juan Navarro
Kurento developer
@j1elo at GitHub & Twitter

Neil Young

unread,
May 18, 2022, 11:49:44 AM5/18/22
to kur...@googlegroups.com
@Juan: 

I can confirm problems with GST 1.20, even on 20.04. 

Is your 7.0 code strictly dependent on the system versions of GST or would it also be possible to make it work with a manually compiled younger version, e.g. 1.17 adds transceiver control. From my experience 1.16 is really the lowest end for successful webrtcbin operation. I'm usually working with a manually built 18.2 version, that is stable and works on 18.04 and 20.04.

Would that still be possible?

Am 18.05.2022 um 17:20 schrieb Juan Navarro <juan.n...@gmx.es>:

Maxim Solodovnik wrote:
Ubuntu 22.04 was released about a month ago
Are there any news for new KMS? :))))

As long as the code works as-is (or mostly)...


OK a bit of an update for Kurento 7.0 :-)

After a great push and lots of progress, we have a build of Kurento fully working with much less forks, using the system's installed version of GStreamer 1.16 on Ubuntu 20.04... so we're almost there in terms of getting rid of our own obsolete forks of the ancient GStreamer 1.8 :-)

This is the complete graph of projects that form part of compiling Kurento 7.0 for Ubuntu 20.04:

https://github.com/Kurento/doc-kurento/blob/bionic-gstreamer/source/images/graphs/dependencies-all.dot

<xlSyhgO3OqWhP6lv.png>

Juan Navarro

unread,
May 19, 2022, 8:46:47 AM5/19/22
to kur...@googlegroups.com
Yeah it is totally possible... the code is not tied to any particular version. But it might depend on implementation details (which we try to avoid and/or fix as we found them).

For example: when starting the effort to remove our old forks, some element names of GStreamer 1.14 had changed internally, so several calls that Kurento makes to gst_bin_get_by_name started failing (e.g. like if one funnel was called "funnel" in GStreamer <= 1.12, but was renamed to "sinkfunnel" on 1.14).

In that sense, we could say that the code of Kurento is tied to some implicit details such as internal element names. For newer code, we'd like to avoid usage of gst_bin_get_by_name and using more indirect methods such as gst_bin_iterate_all_by_element_factory_name or gst_bin_get_by_interface. Sadly, the former of these has taken seemingly too much time to arrive, and is only available on GStreamer >= 1.18! (so, not in Ubuntu 20.04)


I'm curious what you're attempting to do, though; Kurento code was written way before webrtcbin was even a concept for the GStreamer project, and in effect what Kurento does is implement its own "webrtcbin", which is what we call WebRtcEndpoint.

There is no usage of webrtcbin or similar in Kurento. In fact, some time ago I proposed that we could start toying with it, maybe writing a new "WebRtcEndpoint2" or "WebRtcBinEndpoint" which instead of implementing WebRTC on its own, delegated the hard work to the new webrtcbin. However, last time I checked, webrtcbin was too bare bones to use as a proper replacement (lacking stuff such as congestion control, of which Kurento uses REMB). Good news is that GStreamer has a lot of hands involved and interested in improving the WebRTC support, so probably it won't take long for them to have a very feature-filled webrtcbin that does the same or even more than Kurento's WebRtcEndpoint.

Neil Young

unread,
May 19, 2022, 9:46:54 AM5/19/22
to kur...@googlegroups.com

I'm curious what you're attempting to do, though; Kurento code was written way before webrtcbin was even a concept for the GStreamer project, and in effect what Kurento does is implement its own "webrtcbin", which is what we call WebRtcEndpoint.


Ver easy: I‘m running a Phyton script using GST against KMS (besides direct connections to other WebRTC clients).  In order to properly set sendonly, recvonly, sendrecv I was forced to use GST 1.17, since this version brought transceiver control support. But it’s just optional. I’m fine with 1.16 minimum. 

Before 1.16 there were a couple of issues with the libnice version used. 


Juan Navarro

unread,
May 20, 2022, 8:13:25 AM5/20/22
to kur...@googlegroups.com
Oh but, if I understood you correctly, you could just build the newest GStreamer in a custom prefix (eg. /opt/gstreamer-1.18/) for use with Python, then run this Python app pointing it to that newer GStreamer...

And also build a different, older GStreamer to be linked against (and used at runtime) by Kurento.

Then you'd have best of two worlds. Kurento seems to break with GStreamer >= 1.20 (or maybe 1.18, not sure). While your Python app would definitely benefit from being on the edge and using the latest possible version of the webrtcbin, which is under heavy development and receiving improvements continuously.

Neil Young

unread,
May 20, 2022, 8:16:44 AM5/20/22
to kur...@googlegroups.com
Maybe it's possible to do it like so. But let's wait for 7.0, then we'll see :)


Juan Navarro

unread,
May 20, 2022, 8:31:59 AM5/20/22
to kur...@googlegroups.com
Just FYI the "bionic-gstreamer" build, as posted in my previous email, is actually a proper Release Candidate for Kurento 7.0, so it can be tested and used without major rought edges (although it could still contain some).

We've been using this Docker image for almost 1 month in our OpenVidu Call videoconference demo, used it for our own meetings, and it has been working without issues.

So if you feel like test driving the 7.0 before doing the change after its release, I encourage you to do it!

Soon I'll rename all those old "bionic-gstreamer" names to something better sounding, such as kurento-7.0-rc or similar, so it sounds more "trustworthy" :)

Neil Young

unread,
May 20, 2022, 8:33:18 AM5/20/22
to kur...@googlegroups.com
Thanks. Will have an eye on this. :)

Neil Young

unread,
May 20, 2022, 6:25:32 PM5/20/22
to kur...@googlegroups.com
Installed into a 20.04 server VM

No problems so far.

BTW: Ignore my comments regarding GST > 1.16. I was confusing a client installation with the requirements for the server. But I usually install GST from source (as well as KMS), so the next step would be a source install of KMS 7, also in order to see, how it cooperates with OpenCV 4.

For the GST installation I followed the steps here https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c. This took extremely long and in the end some missing packages had to be installed by the KMS installer.

So far so good. The service is running and responds at 8888.

Here the full log after having installed GST. Sorry, some German messages. I had to alter the "apt-key" step a bit, since it ran into a failure (https://unix.stackexchange.com/questions/399027/gpg-keyserver-receive-failed-server-indicated-a-failure)

sudo apt-get update && sudo apt-get install --no-install-recommends --yes gnupg

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5AFA7A83

sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Release packages
EOF

sudo apt-get update && sudo apt-get install --no-install-recommends --yes kurento-media-server


OK:1 http://de.archive.ubuntu.com/ubuntu focal InRelease
OK:2 http://ubuntu.openvidu.io/bionic-gstreamer focal InRelease
Holen:3 http://de.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Holen:4 http://de.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Holen:5 http://de.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Es wurden 336 kB in 11 s geholt (31,4 kB/s).
Paketlisten werden gelesen... Fertig
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.      
Statusinformationen werden eingelesen.... Fertig
Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
  libfwupdplugin1
Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
Die folgenden zusätzlichen Pakete werden installiert:
  gstreamer1.0-nice gstreamer1.0-plugins-good-kurento kms-core kms-elements kms-filters
  kms-jsonrpc kmsjsoncpp libboost-filesystem1.71.0 libboost-log1.71.0
  libboost-program-options1.71.0 libboost-regex1.71.0 libboost-thread1.71.0 libglibmm-2.4-1v5
  libsigc++-2.0-0v5 libsrtp-kurento openh264 openh264-gst-plugin
Vorgeschlagene Pakete:
  kurento-dbg
Die folgenden NEUEN Pakete werden installiert:
  gstreamer1.0-nice gstreamer1.0-plugins-good-kurento kms-core kms-elements kms-filters
  kms-jsonrpc kmsjsoncpp kurento-media-server libboost-filesystem1.71.0 libboost-log1.71.0
  libboost-program-options1.71.0 libboost-regex1.71.0 libboost-thread1.71.0 libglibmm-2.4-1v5
  libsigc++-2.0-0v5 libsrtp-kurento openh264 openh264-gst-plugin
0 aktualisiert, 18 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Es müssen 4.397 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 25,2 MB Plattenplatz zusätzlich benutzt.
Holen:1 http://de.archive.ubuntu.com/ubuntu focal/main amd64 libboost-filesystem1.71.0 amd64 1.71.0-6ubuntu6 [242 kB]
Holen:2 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 gstreamer1.0-nice amd64 0.1.18-0kurento1.20.04~20220517141730.gbp0f7825 [15,2 kB]
Holen:3 http://de.archive.ubuntu.com/ubuntu focal/main amd64 libboost-thread1.71.0 amd64 1.71.0-6ubuntu6 [249 kB]
Holen:4 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 gstreamer1.0-plugins-good-kurento amd64 1.0.0-0kurento1.20.04~20220517141730.gbpe30601 [1.580 B]
Holen:5 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kmsjsoncpp amd64 1.6.3-1kurento1.20.04~20220517141730.gbp15940b [69,5 kB]
Holen:6 http://de.archive.ubuntu.com/ubuntu focal/main amd64 libsigc++-2.0-0v5 amd64 2.10.2-1build1 [11,7 kB]
Holen:7 http://de.archive.ubuntu.com/ubuntu focal/main amd64 libglibmm-2.4-1v5 amd64 2.64.2-1 [567 kB]
Holen:8 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kms-jsonrpc amd64 7.0.0-0kurento1.20.04~20220517141730.gbp2da29b [25,4 kB]
Holen:9 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kms-core amd64 7.0.0-0kurento1.20.04~20220517185636.gbpfeaf80 [681 kB]
Holen:10 http://de.archive.ubuntu.com/ubuntu focal/universe amd64 libboost-regex1.71.0 amd64 1.71.0-6ubuntu6 [471 kB]
Holen:11 http://de.archive.ubuntu.com/ubuntu focal/universe amd64 libboost-log1.71.0 amd64 1.71.0-6ubuntu6 [612 kB]
Holen:12 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 openh264 amd64 1.8.0-0kurento1.20.04~20220517141730.gbpe251c8 [20,4 kB]
Holen:13 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 openh264-gst-plugin amd64 1.0.0-0kurento1.20.04~20220517141730.gbp04ceff [13,5 kB]
Holen:14 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kms-elements amd64 7.0.0-0kurento1.20.04~20220517193235.gbp746d83 [425 kB]
Holen:15 http://de.archive.ubuntu.com/ubuntu focal/main amd64 libboost-program-options1.71.0 amd64 1.71.0-6ubuntu6 [342 kB]
Holen:16 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kms-filters amd64 7.0.0-0kurento1.20.04~20220517193235.gbp0b3f3d [97,9 kB]
Holen:17 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 libsrtp-kurento amd64 1.0.0-0kurento1.20.04~20220517141730.gbp239eb7 [1.540 B]
Holen:18 http://ubuntu.openvidu.io/bionic-gstreamer focal/kms6 amd64 kurento-media-server amd64 7.0.0-0kurento1.20.04~20220517193235.gbp61868a [552 kB]
Es wurden 4.397 kB in 11 s geholt (397 kB/s).
Vormals nicht ausgewähltes Paket gstreamer1.0-nice:amd64 wird gewählt.
(Lese Datenbank ... 104547 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../00-gstreamer1.0-nice_0.1.18-0kurento1.20.04~20220517141730.gbp0f7825_amd64.deb ...
Entpacken von gstreamer1.0-nice:amd64 (0.1.18-0kurento1.20.04~20220517141730.gbp0f7825) ...
Vormals nicht ausgewähltes Paket gstreamer1.0-plugins-good-kurento wird gewählt.
Vorbereitung zum Entpacken von .../01-gstreamer1.0-plugins-good-kurento_1.0.0-0kurento1.20.04~20220517141730.gbpe30601_amd64.deb ...
Entpacken von gstreamer1.0-plugins-good-kurento (1.0.0-0kurento1.20.04~20220517141730.gbpe30601) ...
Vormals nicht ausgewähltes Paket kmsjsoncpp wird gewählt.
Vorbereitung zum Entpacken von .../02-kmsjsoncpp_1.6.3-1kurento1.20.04~20220517141730.gbp15940b_amd64.deb ...
Entpacken von kmsjsoncpp (1.6.3-1kurento1.20.04~20220517141730.gbp15940b) ...
Vormals nicht ausgewähltes Paket kms-jsonrpc wird gewählt.
Vorbereitung zum Entpacken von .../03-kms-jsonrpc_7.0.0-0kurento1.20.04~20220517141730.gbp2da29b_amd64.deb ...
Entpacken von kms-jsonrpc (7.0.0-0kurento1.20.04~20220517141730.gbp2da29b) ...
Vormals nicht ausgewähltes Paket libboost-filesystem1.71.0:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../04-libboost-filesystem1.71.0_1.71.0-6ubuntu6_amd64.deb ...
Entpacken von libboost-filesystem1.71.0:amd64 (1.71.0-6ubuntu6) ...
Vormals nicht ausgewähltes Paket libboost-thread1.71.0:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../05-libboost-thread1.71.0_1.71.0-6ubuntu6_amd64.deb ...
Entpacken von libboost-thread1.71.0:amd64 (1.71.0-6ubuntu6) ...
Vormals nicht ausgewähltes Paket libsigc++-2.0-0v5:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../06-libsigc++-2.0-0v5_2.10.2-1build1_amd64.deb ...
Entpacken von libsigc++-2.0-0v5:amd64 (2.10.2-1build1) ...
Vormals nicht ausgewähltes Paket libglibmm-2.4-1v5:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../07-libglibmm-2.4-1v5_2.64.2-1_amd64.deb ...
Entpacken von libglibmm-2.4-1v5:amd64 (2.64.2-1) ...
Vormals nicht ausgewähltes Paket kms-core wird gewählt.
Vorbereitung zum Entpacken von .../08-kms-core_7.0.0-0kurento1.20.04~20220517185636.gbpfeaf80_amd64.deb ...
Entpacken von kms-core (7.0.0-0kurento1.20.04~20220517185636.gbpfeaf80) ...
Vormals nicht ausgewähltes Paket openh264 wird gewählt.
Vorbereitung zum Entpacken von .../09-openh264_1.8.0-0kurento1.20.04~20220517141730.gbpe251c8_amd64.deb ...
Entpacken von openh264 (1.8.0-0kurento1.20.04~20220517141730.gbpe251c8) ...
Vormals nicht ausgewähltes Paket openh264-gst-plugin wird gewählt.
Vorbereitung zum Entpacken von .../10-openh264-gst-plugin_1.0.0-0kurento1.20.04~20220517141730.gbp04ceff_amd64.deb ...
Entpacken von openh264-gst-plugin (1.0.0-0kurento1.20.04~20220517141730.gbp04ceff) ...
Vormals nicht ausgewähltes Paket kms-elements wird gewählt.
Vorbereitung zum Entpacken von .../11-kms-elements_7.0.0-0kurento1.20.04~20220517193235.gbp746d83_amd64.deb ...
Entpacken von kms-elements (7.0.0-0kurento1.20.04~20220517193235.gbp746d83) ...
Vormals nicht ausgewähltes Paket kms-filters wird gewählt.
Vorbereitung zum Entpacken von .../12-kms-filters_7.0.0-0kurento1.20.04~20220517193235.gbp0b3f3d_amd64.deb ...
Entpacken von kms-filters (7.0.0-0kurento1.20.04~20220517193235.gbp0b3f3d) ...
Vormals nicht ausgewähltes Paket libboost-regex1.71.0:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../13-libboost-regex1.71.0_1.71.0-6ubuntu6_amd64.deb ...
Entpacken von libboost-regex1.71.0:amd64 (1.71.0-6ubuntu6) ...
Vormals nicht ausgewähltes Paket libboost-log1.71.0 wird gewählt.
Vorbereitung zum Entpacken von .../14-libboost-log1.71.0_1.71.0-6ubuntu6_amd64.deb ...
Entpacken von libboost-log1.71.0 (1.71.0-6ubuntu6) ...
Vormals nicht ausgewähltes Paket libboost-program-options1.71.0:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../15-libboost-program-options1.71.0_1.71.0-6ubuntu6_amd64.deb ...
Entpacken von libboost-program-options1.71.0:amd64 (1.71.0-6ubuntu6) ...
Vormals nicht ausgewähltes Paket libsrtp-kurento wird gewählt.
Vorbereitung zum Entpacken von .../16-libsrtp-kurento_1.0.0-0kurento1.20.04~20220517141730.gbp239eb7_amd64.deb ...
Entpacken von libsrtp-kurento (1.0.0-0kurento1.20.04~20220517141730.gbp239eb7) ...
Vormals nicht ausgewähltes Paket kurento-media-server wird gewählt.
Vorbereitung zum Entpacken von .../17-kurento-media-server_7.0.0-0kurento1.20.04~20220517193235.gbp61868a_amd64.deb ...
Entpacken von kurento-media-server (7.0.0-0kurento1.20.04~20220517193235.gbp61868a) ...
gstreamer1.0-plugins-good-kurento (1.0.0-0kurento1.20.04~20220517141730.gbpe30601) wird eingerichtet ...
kmsjsoncpp (1.6.3-1kurento1.20.04~20220517141730.gbp15940b) wird eingerichtet ...
libsrtp-kurento (1.0.0-0kurento1.20.04~20220517141730.gbp239eb7) wird eingerichtet ...
libboost-filesystem1.71.0:amd64 (1.71.0-6ubuntu6) wird eingerichtet ...
gstreamer1.0-nice:amd64 (0.1.18-0kurento1.20.04~20220517141730.gbp0f7825) wird eingerichtet ...
libsigc++-2.0-0v5:amd64 (2.10.2-1build1) wird eingerichtet ...
kms-jsonrpc (7.0.0-0kurento1.20.04~20220517141730.gbp2da29b) wird eingerichtet ...
libboost-regex1.71.0:amd64 (1.71.0-6ubuntu6) wird eingerichtet ...
openh264 (1.8.0-0kurento1.20.04~20220517141730.gbpe251c8) wird eingerichtet ...
+ Installing this package implies acceptance of the following license:

-------------------------------------------------------
About The Cisco-Provided Binary of OpenH264 Video Codec
-------------------------------------------------------

Cisco provides this program under the terms of the BSD license.

Additionally, this binary is licensed under Cisco’s AVC/H.264 Patent Portfolio License from MPEG LA, at no cost to you, provided that the requirements and conditions shown below in the AVC/H.264 Patent Portfolio sections are met.

As with all AVC/H.264 codecs, you may also obtain your own patent license from MPEG LA or from the individual patent owners, or proceed at your own risk.  Your rights from Cisco under the BSD license are not affected by this choice.

For more information on the OpenH264 binary licensing, please see the OpenH264 FAQ found at http://www.openh264.org/faq.html#binary

A corresponding source code to this binary program is available under the same BSD terms, which can be found at http://www.openh264.org

-----------
BSD License
-----------

Copyright © 2014 Cisco Systems, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-----------------------------------------
AVC/H.264 Patent Portfolio License Notice
-----------------------------------------

The binary form of this Software is distributed by Cisco under the AVC/H.264 Patent Portfolio License from MPEG LA, and is subject to the following requirements, which may or may not be applicable to your use of this software:

THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE PERSONAL USE OF A CONSUMER OR OTHER USES IN WHICH IT DOES NOT RECEIVE REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD ('AVC VIDEO') AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO.  NO LICENSE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE.  ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM

Accordingly, please be advised that content providers and broadcasters using AVC/H.264 in their service may be required to obtain a separate use license from MPEG LA, referred to as "(b) sublicenses" in the SUMMARY OF AVC/H.264 LICENSE TERMS from MPEG LA found at http://www.openh264.org/mpegla

---------------------------------------------
AVC/H.264 Patent Portfolio License Conditions
---------------------------------------------

In addition, the Cisco-provided binary of this Software is licensed under Cisco's license from MPEG LA only if the following conditions are met:

1. The Cisco-provided binary is separately downloaded to an end user’s device, and not integrated into or combined with third party software prior to being downloaded to the end user’s device;

2. The end user must have the ability to control (e.g., to enable, disable, or re-enable) the use of the Cisco-provided binary;

3. Third party software, in the location where end users can control the use of the Cisco-provided binary, must display the following text:

       "OpenH264 Video Codec provided by Cisco Systems, Inc."

4.  Any third-party software that makes use of the Cisco-provided binary must reproduce all of the above text, as well as this last condition, in the EULA and/or in another location where licensing information is to be presented to the end user.



                          v1.0

+ Wait 3 seconds before continuing
+ Download OpenH264 library from Cisco server
--2022-05-20 22:08:17--  http://ciscobinary.openh264.org/libopenh264-1.8.0-linux64.4.so.bz2
Resolving ciscobinary.openh264.org (ciscobinary.openh264.org)... 104.96.0.98, 104.96.0.105, 2a02:26f0:10a::6860:62, ...
Connecting to ciscobinary.openh264.org (ciscobinary.openh264.org)|104.96.0.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 529202 (517K) [application/octet-stream]
Saving to: ‘libopenh264-1.8.0-linux64.4.so.bz2’

libopenh264-1.8.0-linux6 100%[==================================>] 516,80K  --.-KB/s    in 0,09s  

2022-05-20 22:08:18 (5,87 MB/s) - ‘libopenh264-1.8.0-linux64.4.so.bz2’ saved [529202/529202]

+ Extract and install OpenH264 library
+ Done!
libboost-thread1.71.0:amd64 (1.71.0-6ubuntu6) wird eingerichtet ...
libboost-program-options1.71.0:amd64 (1.71.0-6ubuntu6) wird eingerichtet ...
libglibmm-2.4-1v5:amd64 (2.64.2-1) wird eingerichtet ...
kms-core (7.0.0-0kurento1.20.04~20220517185636.gbpfeaf80) wird eingerichtet ...
+ HOME_DIR=/var/lib/kurento
+ id kurento
+ adduser --system --group --home /var/lib/kurento --disabled-password kurento
Adding system user `kurento' (UID 113) ...
Adding new group `kurento' (GID 118) ...
Adding new user `kurento' (UID 113) with group `kurento' ...
Creating home directory `/var/lib/kurento' ...
+ mkdir -p /var/lib/kurento
+ chown -R kurento /var/lib/kurento
+ chmod 777 /var/lib/kurento
+ exit 0
libboost-log1.71.0 (1.71.0-6ubuntu6) wird eingerichtet ...
openh264-gst-plugin (1.0.0-0kurento1.20.04~20220517141730.gbp04ceff) wird eingerichtet ...
kms-elements (7.0.0-0kurento1.20.04~20220517193235.gbp746d83) wird eingerichtet ...
kms-filters (7.0.0-0kurento1.20.04~20220517193235.gbp0b3f3d) wird eingerichtet ...
kurento-media-server (7.0.0-0kurento1.20.04~20220517193235.gbp61868a) wird eingerichtet ...
+ HOME_DIR=/var/lib/kurento
+ id kurento
+ mkdir -p /var/lib/kurento
+ chown -R kurento /var/lib/kurento
+ chmod 777 /var/lib/kurento
+ '[' configure = configure ']'
+ '[' -x /etc/init.d/kurento-media-server ']'
+ update-rc.d kurento-media-server defaults
+ invoke-rc.d kurento-media-server start
+ exit 0
Trigger für systemd (245.4-4ubuntu3.17) werden verarbeitet ...
Trigger für libc-bin (2.31-0ubuntu9.9) werden verarbeitet ...


ubuntu@ubuntukms:~$ kurento-media-server --version
Kurento Media Server version: 7.0.0~33.g61868a2
Found modules:
'core' version 7.0.0~49.gfeaf808e
'elements' version 7.0.0~61.g746d838
'filters' version 7.0.0~33.g0b3f3d7


ubuntu@ubuntukms:~$ gst-launch-1.0 --version
gst-launch-1.0 version 1.16.2
GStreamer 1.16.2
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0





Neil Young

unread,
May 21, 2022, 2:42:30 AM5/21/22
to kurento
Oh, there seem to be some changes (or do I need an updated kurento-client?)

"dependencies": {
"kurento-client": "^6.16.0"
}


This old script fails now (no further investigations done yet):


const kurento = require('kurento-client')

const sdpOffer ="v=0\no=- 5830389526708069212 2 IN IP4 127.0.0.1\ns=-\nt=0 0\na=group:BUNDLE 0 1\na=extmap-allow-mixed\na=msid-semantic: WMS\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127 120 125 107 108 109 35 36 124 119 123 118 114 115 116\nc=IN IP4 0.0.0.0\na=rtcp:9 IN IP4 0.0.0.0\na=ice-ufrag:49lr\na=ice-pwd:69SWVA8nR9TBi1lw5+77GSfB\na=ice-options:trickle\na=fingerprint:sha-256 4D:87:BF:C7:10:89:4C:8B:69:2E:51:DF:18:88:38:C4:9F:6C:9A:E9:1D:7B:3A:33:98:86:63:76:34:C9:C6:49\na=setup:actpass\na=mid:0\na=extmap:1 urn:ietf:params:rtp-hdrext:toffset\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\na=extmap:3 urn:3gpp:video-orientation\na=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\na=sendrecv\na=msid:- 03d43219-9dcd-44ff-83cf-d70bb16ceda0\na=rtcp-mux\na=rtcp-rsize\na=rtpmap:96 VP8/90000\na=rtcp-fb:96 goog-remb\na=rtcp-fb:96 transport-cc\na=rtcp-fb:96 ccm fir\na=rtcp-fb:96 nack\na=rtcp-fb:96 nack pli\na=rtpmap:97 rtx/90000\na=fmtp:97 apt=96\na=rtpmap:98 VP9/90000\na=rtcp-fb:98 goog-remb\na=rtcp-fb:98 transport-cc\na=rtcp-fb:98 ccm fir\na=rtcp-fb:98 nack\na=rtcp-fb:98 nack pli\na=fmtp:98 profile-id=0\na=rtpmap:99 rtx/90000\na=fmtp:99 apt=98\na=rtpmap:100 VP9/90000\na=rtcp-fb:100 goog-remb\na=rtcp-fb:100 transport-cc\na=rtcp-fb:100 ccm fir\na=rtcp-fb:100 nack\na=rtcp-fb:100 nack pli\na=fmtp:100 profile-id=2\na=rtpmap:101 rtx/90000\na=fmtp:101 apt=100\na=rtpmap:102 H264/90000\na=rtcp-fb:102 goog-remb\na=rtcp-fb:102 transport-cc\na=rtcp-fb:102 ccm fir\na=rtcp-fb:102 nack\na=rtcp-fb:102 nack pli\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\na=rtpmap:121 rtx/90000\na=fmtp:121 apt=102\na=rtpmap:127 H264/90000\na=rtcp-fb:127 goog-remb\na=rtcp-fb:127 transport-cc\na=rtcp-fb:127 ccm fir\na=rtcp-fb:127 nack\na=rtcp-fb:127 nack pli\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\na=rtpmap:120 rtx/90000\na=fmtp:120 apt=127\na=rtpmap:125 H264/90000\na=rtcp-fb:125 goog-remb\na=rtcp-fb:125 transport-cc\na=rtcp-fb:125 ccm fir\na=rtcp-fb:125 nack\na=rtcp-fb:125 nack pli\na=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\na=rtpmap:107 rtx/90000\na=fmtp:107 apt=125\na=rtpmap:108 H264/90000\na=rtcp-fb:108 goog-remb\na=rtcp-fb:108 transport-cc\na=rtcp-fb:108 ccm fir\na=rtcp-fb:108 nack\na=rtcp-fb:108 nack pli\na=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\na=rtpmap:109 rtx/90000\na=fmtp:109 apt=108\na=rtpmap:35 AV1X/90000\na=rtcp-fb:35 goog-remb\na=rtcp-fb:35 transport-cc\na=rtcp-fb:35 ccm fir\na=rtcp-fb:35 nack\na=rtcp-fb:35 nack pli\na=rtpmap:36 rtx/90000\na=fmtp:36 apt=35\na=rtpmap:124 H264/90000\na=rtcp-fb:124 goog-remb\na=rtcp-fb:124 transport-cc\na=rtcp-fb:124 ccm fir\na=rtcp-fb:124 nack\na=rtcp-fb:124 nack pli\na=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032\na=rtpmap:119 rtx/90000\na=fmtp:119 apt=124\na=rtpmap:123 H264/90000\na=rtcp-fb:123 goog-remb\na=rtcp-fb:123 transport-cc\na=rtcp-fb:123 ccm fir\na=rtcp-fb:123 nack\na=rtcp-fb:123 nack pli\na=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032\na=rtpmap:118 rtx/90000\na=fmtp:118 apt=123\na=rtpmap:114 red/90000\na=rtpmap:115 rtx/90000\na=fmtp:115 apt=114\na=rtpmap:116 ulpfec/90000\na=ssrc-group:FID 3072426728 2555767047\na=ssrc:3072426728 cname:YcidyPojhj4f6zMt\na=ssrc:3072426728 msid:- 03d43219-9dcd-44ff-83cf-d70bb16ceda0\na=ssrc:3072426728 mslabel:-\na=ssrc:3072426728 label:03d43219-9dcd-44ff-83cf-d70bb16ceda0\na=ssrc:2555767047 cname:YcidyPojhj4f6zMt\na=ssrc:2555767047 msid:- 03d43219-9dcd-44ff-83cf-d70bb16ceda0\na=ssrc:2555767047 mslabel:-\na=ssrc:2555767047 label:03d43219-9dcd-44ff-83cf-d70bb16ceda0\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\nc=IN IP4 0.0.0.0\na=ice-ufrag:49lr\na=ice-pwd:69SWVA8nR9TBi1lw5+77GSfB\na=ice-options:trickle\na=fingerprint:sha-256 4D:87:BF:C7:10:89:4C:8B:69:2E:51:DF:18:88:38:C4:9F:6C:9A:E9:1D:7B:3A:33:98:86:63:76:34:C9:C6:49\na=setup:actpass\na=mid:1\na=sctp-port:5000\na=max-message-size:262144\n"

const do_offer = true

const test = async () => {
    try {
        let kurentoClient = await kurento('ws://192.168.188.97:8888/kurento', { failAfter: 5 })
        let pipeline = await kurentoClient.create('MediaPipeline')
        await pipeline.setLatencyStats(true)
        let webRtcEndpoint = await pipeline.create('WebRtcEndpoint')
        await Promise.all(
            [   webRtcEndpoint.setMinVideoSendBandwidth(500),
                webRtcEndpoint.setMaxVideoSendBandwidth(5000),
                webRtcEndpoint.setMinVideoRecvBandwidth(500),
                webRtcEndpoint.setMaxVideoRecvBandwidth(500)
            ])
       
        webRtcEndpoint.on('ConnectionStateChanged', (event) => {
            console.log(`ConnectionStateChanged ${JSON.stringify(event)}`)
        })
        webRtcEndpoint.on('MediaStateChanged', (event) => {
            console.log(`MediaStateChanged ${JSON.stringify(event)}`)
        })
        // webRtcEndpoint.on('IceComponentStateChange', (event) => {
        //     console.log(`IceComponentStateChange state ${event.state}, streamId ${event.streamId}, componentId ${event.componentId}`)
        // })
        webRtcEndpoint.on('NewCandidatePairSelected', (event) => {
            console.log(`NewCandidatePairSelected, server ${event.candidatePair.localCandidate}`)
            console.log(`NewCandidatePairSelected, client ${event.candidatePair.remoteCandidate}`)
        })
        webRtcEndpoint.on('IceCandidateFound', (event) => {
            console.log(`IceCandidateFound ${event.candidate.candidate}, sdpMid: ${event.candidate.sdpMid}`)
        })
        webRtcEndpoint.on('IceGatheringDone', (event) => {
            console.log(`IceGatheringDone`)
        })
   
        await webRtcEndpoint.connect(webRtcEndpoint)

        if (!do_offer) {
            let offer = await webRtcEndpoint.generateOffer()
            console.log("KMS offer:\n", offer)
        }
        else {

            let answer = await webRtcEndpoint.processOffer(sdpOffer)
            console.log("KMS answer:\n", answer)
        }

        await webRtcEndpoint.gatherCandidates()

    }
    catch (e) {
        console.error(e)
    }
   
}

test()



The error is:

node index.js
Trace: Error: Event 'IceComponentStateChange' not supported
    at /Users/decades/Documents/tmp/kurento-test/node_modules/kurento-client/lib/KurentoClient.js:365:24
    at Object.dispatchCallback [as callback] (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:546:9)
    at processResponse (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:667:15)
    at RpcBuilder.decode (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:723:5)
    at Stream.transportMessage (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:208:10)
    at Stream.emit (node:events:527:28)
    at Stream.emit (node:domain:475:12)
    at drain (/Users/decades/Documents/tmp/kurento-test/node_modules/through/index.js:36:16)
    at stream.queue.stream.push (/Users/decades/Documents/tmp/kurento-test/node_modules/through/index.js:45:5)
    at WebsocketStream.onMessage (/Users/decades/Documents/tmp/kurento-test/node_modules/websocket-stream/index.js:45:15) {
  code: 40106,
  data: { type: 'MEDIA_OBJECT_EVENT_NOT_SUPPORTED' }
}
    at callback2 (/Users/decades/Documents/tmp/kurento-test/node_modules/promisecallback/index.js:32:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Event 'IceComponentStateChange' not supported
    at /Users/decades/Documents/tmp/kurento-test/node_modules/kurento-client/lib/KurentoClient.js:365:24
    at Object.dispatchCallback [as callback] (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:546:9)
    at processResponse (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:667:15)
    at RpcBuilder.decode (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:723:5)
    at Stream.transportMessage (/Users/decades/Documents/tmp/kurento-test/node_modules/kurento-jsonrpc/lib/index.js:208:10)
    at Stream.emit (node:events:527:28)
    at Stream.emit (node:domain:475:12)
    at drain (/Users/decades/Documents/tmp/kurento-test/node_modules/through/index.js:36:16)
    at stream.queue.stream.push (/Users/decades/Documents/tmp/kurento-test/node_modules/through/index.js:45:5)
    at WebsocketStream.onMessage (/Users/decades/Documents/tmp/kurento-test/node_modules/websocket-stream/index.js:45:15)
Emitted 'error' event on WebRtcEndpoint instance at:
    at /Users/decades/Documents/tmp/kurento-test/node_modules/kurento-client-core/lib/abstracts/MediaObject.js:198:29
    at callback2 (/Users/decades/Documents/tmp/kurento-test/node_modules/promisecallback/index.js:27:25)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 40106,
  data: { type: 'MEDIA_OBJECT_EVENT_NOT_SUPPORTED' }
}

Node.js v18.0.0

If I comment the "IceComponentStateChange" handler, it works.

Any info about API changes available yet?



Juan Navarro

unread,
May 24, 2022, 11:28:09 AM5/24/22
to kur...@googlegroups.com
Yeah, we're taking the chance of a major upgrade, and cleaning up all typos and renamed APIs from the Kurento RPC server / SDKs.

Kurento 6.18 (right now in pre-release testing) is the latest version of Kurento 6.x, that will be compatible both with all new _and_ old API. Starting from Kurento 7.0, the API has been cleaned up and all old names are removed.

The changes are quite minor, though. They are listed here:

https://doc-kurento.readthedocs.io/en/latest/project/relnotes/v6_18_0.html#deprecated-renamed-api-methods

If you use the newer names, the code will work with both Kurento 6.18 and Kurento 7.0.

The only gotcha is that right now, _both_ of Kurento 6.18 and 7.0 are unreleased. So the 6.18 API is only available in snapshot repositories (if you use Java), or in git master branch (for JavaScript):

https://doc-kurento.readthedocs.io/en/latest/user/installation_dev.html#kurento-javascript-client




--
Juan Navarro
Kurento developer
@j1elo at GitHub & Twitter

Neil Young

unread,
May 24, 2022, 11:35:04 AM5/24/22
to kur...@googlegroups.com
Besides the name changes and clean ups: What are the major
Improvements 7.0 gives compared to 6.16 for instance?

Sent from my iPhone


Am 24.05.2022 um 17:28 schrieb Juan Navarro <juan.n...@gmx.es>:

 Yeah, we're taking the chance of a major upgrade, and cleaning up all typos and renamed APIs from the Kurento RPC server / SDKs.

Israel Robotnick

unread,
May 24, 2022, 3:23:34 PM5/24/22
to kur...@googlegroups.com
Gstreamer 1.16 instead of 1.8
Isnt big enough change for u?
It gives you so many additions from gstreamer to use

Neil Young

unread,
May 24, 2022, 3:27:02 PM5/24/22
to kur...@googlegroups.com
Not sure what you mean. What additions does it give me server side, if I don't use GStreamer explicitly? I'm dealing with KMS and KMS API. Client side I was always using 1.18 since a while.

Again: I'm not explicitly using any GStreamer function server side, at least not to my knowledge.

Isnt big enough change for u?

There is no need to get offensive. It was a legit questions I guess


--
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/wBLzzr6x3Ws/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/CACfXCScfMHiSuX5Cja8OYsiNKQ1CsQHWs7-gezd%3DGYOiXsR1Fw%40mail.gmail.com.

Neil Young

unread,
May 24, 2022, 3:42:34 PM5/24/22
to kur...@googlegroups.com
Other than that the naming of KMS was always confusing: The derived GST repos have been named 1.5, I think they have seen a couple of back ports as GST evolved too. Now there is this number 1.8 in the air.

Anyway, maybe a person in better mood is able to explain the real news

Juan Navarro

unread,
May 27, 2022, 7:04:17 AM5/27/22
to kur...@googlegroups.com
Hi, there is not a lot of functional changes, to be honest. Actually if you ask me, there are some regressions, given that we'll need to drop support for our old OpenCV-based sample filters.

More info in the Release Notes of the upcoming 6.18:

https://doc-kurento.readthedocs.io/en/latest/project/relnotes/v6_18_0.html#deprecated-opencv-extra-modules

What Kurento 7.0 brings to the table is a much needed step forward in terms of maintainability of the source code. It was just a nightmare of forked repositories, having to build the complete GStreamer library. It dragged down the project by requiring lots of effort for everybody, both maintainers and external contributors, making everything needlessly complicated. For example: there were altruistic efforts of some people wanting to port Kurento to ARM platforms (like Raspberry Pi), but they were encumbered too by the complexity of the dependency graph.

Of course, in getting rid of those old forks, we're making Kurento to use the newer libraries from the system, which no doubt have accumulated tons of bug fixes and security improvements over the years.

In general terms, getting rid of the old GStreamer forks and being able to use whatever version comes with the system, is a breath of fresh air. Kurento won't be stuck any more in Ubuntu Xenial. The effort it took some years ago to move everything from Trusty (14.04) to Xenial (16.04) was big. The effort to add Bionic (18.04) was enormous (several months). Now that things are working well on Focal (20.04), we'd like to keep travelling lighter from now on :-) And when 7.0 is stable, I'd like to look into upgrading to 22.04!

However, regarding features, Kurento is pretty much stable and no major new additions are planned. Some times there are actual improvements, such the FLV recording mode that has been added for 6.18; as long as the community is able to provide easy to review, small additions, I'll be able to get some time to review them and merge. But apart from that, the only intention we have at OpenVidu is to keep Kurento working as stable as possible, being as it is the backend media server for the open source Community Edition of the platform.


Regards,
--
Juan Navarro
Kurento developer
@j1elo at GitHub & Twitter
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/D1058235-7B35-4549-9967-BE7C4D561916%40googlemail.com.

Neil Young

unread,
May 27, 2022, 7:44:22 AM5/27/22
to kur...@googlegroups.com
Hi Juan,

Thanks for the elaborated answer. Very much appreciated

>
> Actually if you ask me, there are some regressions, given that we'll need to drop support for our old OpenCV-based sample filters.

OK. I hope you didn't remove the ability to insert OpenCV filters at all, because this is a unique feature compared to other media servers.

> For example: there were altruistic efforts of some people wanting to port Kurento to ARM platforms (like Raspberry Pi), but they were encumbered too by the complexity of the dependency graph.
>

Not me, as you know :) Furthermore, I would like to do the same again for KMS 7 if sources are available. https://gist.github.com/neilyoung/bc67892ec79a0f8de44b46642e7dceeb

>
> In general terms, getting rid of the old GStreamer forks and being able to use whatever version comes with the system, is a breath of fresh air.

Complete ack and good move.

> Kurento won't be stuck any more in Ubuntu Xenial. The effort it took some years ago to move everything from Trusty (14.04) to Xenial (16.04) was big. The effort to add Bionic (18.04) was enormous (several months). Now that things are working well on Focal (20.04), we'd like to keep travelling lighter from now on :-) And when 7.0 is stable, I'd like to look into upgrading to 22.04!
>
> However, regarding features, Kurento is pretty much stable and no major new additions are planned. Some times there are actual improvements, such the FLV recording mode that has been added for 6.18; as long as the community is able to provide easy to review, small additions, I'll be able to get some time to review them and merge. But apart from that, the only intention we have at OpenVidu is to keep Kurento working as stable as possible, being as it is the backend media server for the open source Community Edition of the platform.

Simulcast........... :)

Thanks again

Neil Young

unread,
May 29, 2022, 1:55:51 PM5/29/22
to kurento
@Juan:

Was trying to compile KMS 7 from source, failed on some of the first steps already.

Up to now I compiled librtsp like so:

cd ~/kms-build
cd libsrtp 
./configure && make && sudo make install && sudo ldconfig

Adaptation to 7.0.0
cd ~/kms-build
git checkout 7.0.0

It then fails in "./configure":

ubuntu@kms7:~/kms-build/libsrtp$ ./configure
+ export DEBIAN_FRONTEND=noninteractive
+ DEBIAN_FRONTEND=noninteractive
+ sed -i 's/# deb-src/deb-src/' /etc/apt/sources.list
sed: couldn't open temporary file /etc/apt/sedSeZopF: Permission denied


sudo ./configure requires me to additionally install "sudo apt-get quilt devscripts"

sudo ./configure passes seemingly OK, but then there is no Makefile and make fails with make: *** No targets specified and no makefile found.  Stop.

I then found a Makefile in subdir /kms-build/libsrtp/libsrtp2-2.3.0-2, ran make and sudo make install with success. OK?

Neil Young

unread,
May 29, 2022, 2:08:04 PM5/29/22
to kurento
@Juan,

don't bother. I'm stuck again down the road while attempting to compile libnice. There is a mismatch between meson version and cmake.

I think I will wait for some official release of 7.0.0

Juan Navarro

unread,
May 30, 2022, 11:57:01 AM5/30/22
to kur...@googlegroups.com
Hi,

there is a huge difference between the contents of "master" branch and "7.0.0" branch.

In the master branch, used for builds of Kurento 6.x on Ubuntu 16.04 and 18.04, there is a whole copy of the libsrtp sources, grabbed from some arbitrary commit. These sources are as-is, and are supplemented with a debian/ folder, which contains all configuration required in order to apply Kurento patches and build new .deb packages from it.

In the "7.0.0" branch, all this changes. We are not storing the source code any more. We are leveraging the already existing source code in the underlying system (Ubuntu 20.04), so the configure script downloads _that_ source code, patches it, and builds it into a .deb package.

As with everything, there are pros and cons. In this case, using the distribution's source code means we're distributing a version that is vetted by Canonical's security team, and includes any patches and fixes that Ubuntu might have done over time. The script is simply a mere intermediary between downloading those sources (with "apt-get source libsrtp"), applying patches for Kurento, and building them back into a new .deb package. The con is that we're not holding any more the original sources, so the script is working not against upstream project but specifically against the tested version of Ubuntu, 20.04.

To build this dependency in other systems, just take their version of the package, patch it with the .patch file included in this repo, and build a package for whatever desired distro.

My intention is to move all forked repos towads this model, as keeping our own fork of the original libraries is a sure fire way to have them stalled and never updated again, without security fixes and patches.

This same technique is already used too for the gst-plugins-good repo, which needs patching in order to make recording work (sadly a limitation of GStreamer-plugins-good makes it break for some cases, so we patch that out).
--
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.

Neil Young

unread,
May 30, 2022, 12:38:48 PM5/30/22
to kurento
Thanks for the info

> To build this dependency in other systems, just take their version of the package, patch it with the .patch file included in this repo, and build a package for whatever desired distro.

A little sample bash line available, how to exactly achieve that?

I think I would need some input on how you build KMS from source. Do you plan to provide a little gist as you did for all the versions before or do you completely rely on Debian packages in future? Will there also be a "how to build KMS from source" for at least the default X86_64 20.04?

Regards

Juan Navarro

unread,
May 30, 2022, 4:52:33 PM5/30/22
to kur...@googlegroups.com
With "other systems" I meant maybe Suse, Manjaro, Redhat... linux distributions not based on Debian, on which I wouldn't know how to obtain the system's package sources, patch them, and rebuild a new, valid, package file.

For Debian-based systems, the way to do it is what the new configure file does, so the best you can do is have a look in there:

https://github.com/Kurento/libsrtp/blob/7.0.0/configure

However there are some optional things done there. Mainly the modifications of debian/changelog; those are not strictly needed, and are there just so the new package has a different, higher version than the system's one.

So, in summary, this would be how to do it:

1. Enable source repositories. These are the lines that start with "deb-src", and usually come commented out by default in most if not all distros.
2. Install the build dependencies of the intended package. The command for that is
apt-get build-dep <Name>. Just like apt-get install <Name> would install the package named <Name>, apt-get build-dep <Name> installs the build dependencies that are needed to build <Name> from sources.
3. Download the sources of the package. This is done with apt-get source <Name>
4. Build the package. This is done with
dpkg-buildpackage -us -uc -b

In our case, however, there is a point 3.5, which is to patch the sources. We're using the Debian's tool "quilt" to ensure that the patch is cleanly applied during execution of "
dpkg-buildpackage", but another way to do it would be to just apply them explicitly with git apply.

This summarized example works fine as a guide:

# Uncomment deb-src repositories in /etc/apt/sources.list
sudo apt-get update
sudo apt-get build-dep libsrtp2
apt-get source libsrtp2
cd libsrtp2-2.3.0/
git apply ../9001-allow-rx-replay.patch
dpkg-buildpackage -us -uc -b



Regards



Neil Young

unread,
May 31, 2022, 3:25:38 AM5/31/22
to kurento
deb-src was already uncommented in my /etc/apt/sources.list (w/o having done this knowingly)

This step fails with

ubuntu@kms7:~/kms-build/libsrtp2-2.3.0$ git apply ../9001-allow-rx-replay.patch

error: can't open patch '../9001-allow-rx-replay.patch': No such file or directory

However, in branch 7.0.0 of Kurento/libsrtp there is such a patch file. I cloned that and applied the changes from there in libsrtp2-2.3.0, that seemed to have worked

So the changed sequence is now:

cd ~/kms-build
git clone https://github.com/Kurento/libsrtp.git
cd libsrtp
git checkout 7.0.0
cd ..
sudo apt-get update
sudo apt-get build-dep libsrtp2
apt-get source libsrtp2
cd libsrtp2-2.3.0/
git apply ../libsrtp/9001-allow-rx-replay.patch
dpkg-buildpackage -us -uc -b

Would you be able to identify other packages, which would have to be handled similarly?
Reply all
Reply to author
Forward
0 new messages