Kurento and SFU

2,481 views
Skip to first unread message

mbel...@gmail.com

unread,
Jul 12, 2015, 2:56:44 PM7/12/15
to kur...@googlegroups.com
Greetings,

Can Kurento be used today as a SFU unit (assuming same codec in both sides)?
This can make it much more scalable for the cases there is no need to modify the streams.
Maybe creating a new Media Element that encapsulates this behavior and does the locking of the video codec could be the trick.

Any thoughts?

Regards,

Marcos B

Ivan Gracia

unread,
Jul 16, 2015, 9:15:14 AM7/16/15
to Kurento Public
That could be doable, but it's not in our short-term roadmap. In any case, we're not sure if that capability would be released as Open Source.

Ivan Gracia



--
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.
For more options, visit https://groups.google.com/d/optout.

Marcos B

unread,
Jul 16, 2015, 1:54:02 PM7/16/15
to kur...@googlegroups.com
Ok. Thanks for the clarification. But your last sentence let me intrigued. Does Kurento has or will have a commercial license with features not present in the Open Source base?

Regards,

Marcos Bellezi

--
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/2VMn7BPfLm0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

hu

unread,
Jul 16, 2015, 9:11:52 PM7/16/15
to kur...@googlegroups.com, mbel...@gmail.com
igracia.

on one2many example. kms play as a SFU. isn't?  master and viewers are same stream.

thx. 

Luis Lopez

unread,
Jul 17, 2015, 9:44:29 AM7/17/15
to kur...@googlegroups.com
Yes, Kurento will have soon several amazing features not available as Open Source. But the media server core, as well as all the features currently available, shall be maintained as open source and the community will be able to continue enjoying them.

Luis Lopez
Kurento.org Project Coordinator
tel +34 914 888 713tel lu...@kurento.comtel prof.luis.lopez • twitter linkedin blog youtube

Kurento.org logo

Best WoW Factor Award at WebRTC Conference & Expo 2014 (California)
Award

Audience Choice Award at WebRTC Conference & Expo 2014 (California)
Award

Best of Show Award at WebRTC conference expo 2014 (Paris)
Award


Travis James

unread,
Aug 5, 2015, 4:00:45 PM8/5/15
to kurento, mbel...@gmail.com
I have been looking at this a bit, and it would seem that this can be done by creating a new module with a new end point type, porting the code for Jitsi Videobridge to perform the same functions.

This would probably make Kurento even faster and more scalable than Jitsi and open the door for selective encoding for endpoints that have, for instance, and iPhone connected to them (encoding to H.264 using GStreamer would save battery and possibly improve experience on an iPhone in certain situations).

This might be worth doing...

Luis Lopez

unread,
Aug 5, 2015, 5:28:25 PM8/5/15
to kur...@googlegroups.com, mbel...@gmail.com
Kurento is already an SFU (it is making a payloading/depayloading but it is not decoding/encoding). Double check your pipeline if you have having transcoding operations when send/receive codecs are the same, because this should not be happening.

Otherwise, integrating Jitsi Videobridge as a Kurento module is a very bad idea and I discourage you from doing so. Kurento media elements don't "speak" RTP and jitsi only knows how to forward RTP packets, hence, you'll not be able to get/send media from/to Jitsi Videobridge without deep modifications on Kurento architecture.

Best.

Luis Lopez
Kurento.org Project Coordinator
tel +34 914 888 713tel lu...@kurento.comtel prof.luis.lopez • twitter linkedin blog youtube

Kurento.org logo

Best WoW Factor Award at WebRTC Conference & Expo 2014 (California)
Award

Audience Choice Award at WebRTC Conference & Expo 2014 (California)
Award

Best of Show Award at WebRTC conference expo 2014 (Paris)
Award



Travis James

unread,
Aug 5, 2015, 6:52:43 PM8/5/15
to kurento, mbel...@gmail.com
Thanks for explaining all that, because I am just now getting into deeply learning Kurento.  This helps a lot.

The question I have--and probably other too--is this:

Does Kurento scale as an SFU to the level Jitsi does?  Jitsi has lots of documentation supporting some really impressive scalability numbers--500 clients on a single large Ubuntu instance at only 25% CPU utilization and still low memory consumption.

I have not seen any scalability numbers at all on Kurento, and each time I see someone ask a question about it, I never see a clear, clean answer.

It is this lack of clarity that has me seeking options like cloning Jitsi in Kurento.  Can you provide an answer for this?

My service, which I have chosen to base on Kurento does depend on my knowing this to some degree of certainty...

Travis

Luis Lopez

unread,
Aug 7, 2015, 6:08:01 AM8/7/15
to kur...@googlegroups.com, mbel...@gmail.com
We don't have much rigorous metrics on KMS scalability, although we've plans for creating some in the next few weeks. As soon as they are ready we'll be publishing them into this list. However, this is not simple because there is no standard way of measuring scalability. Saying just "I support X clients" means nothing without specifying the BW of the clients, whether the clients are simplex or duplex, whether there is audio and/or video. In addition, it is necessary to specify an appropriate metric for measuring QoS degradation. When you say "I support X clients" does it mean you don't support X+1? or X+10? In general QoS degrades with the number of clients and it is not clear how to measure that degradation.

Having said this, our guess, through some informal experiments, is that Kurento v 6.0 should have an scalability close to the one of the SFUs you mention for most reasonable working conditions: around 300 clients in an AWS large machine just connecting WebRtcEndpoints (following a one-to-many model) and around 500 with the new Tree one-to-many capability. In addition, for Q4 we plan to create a new type of endpoint do not requiring RTP payloading/deplayloading which shall increase scalability in around 20%. 

Anyway, in relation to the "impressive numbers" you mention, my recommendation for you is to test them yourself under reasonable working conditions and check what happens.

Best regards.

Luis Lopez
Kurento.org Project Coordinator
tel +34 914 888 713tel lu...@kurento.comtel prof.luis.lopez • twitter linkedin blog youtube

Kurento.org logo

Best WoW Factor Award at WebRTC Conference & Expo 2014 (California)
Award

Audience Choice Award at WebRTC Conference & Expo 2014 (California)
Award

Best of Show Award at WebRTC conference expo 2014 (Paris)
Award



Travis James

unread,
Aug 8, 2015, 7:01:17 AM8/8/15
to kurento, mbel...@gmail.com
Thank very much for your response, because that helps a lot in my planning.  I will indeed test the scalability in many target environments (Amazon, DigitalOcean, the new Google containers, and Joyent using Triton bare metal containers).

There are indeed many variables that contribute to actual functional scalability (having useful conferences as opposed to just being able to connect 500 people).  My idea of implementing Jitsi was not really to implement everything verbatim.  Rather we can consider implementing the "Last-N" algorithm as part of the SFU function in accordance with this paper:


I am still a newbie when it comes to learning everything about the design of Kurento and the code base, so you can tell me if it is still a bad idea to consider doing this--or extending the SFU function in some way to allow for different algorithms to be selected.

The protocols and pipeline functions would remain the same.  However, this may not be necessary if tests reveal that Kurento 6.0 currently supports 500 users in a session (in a useful way) per server, as this would be close enough to the logical limit for what any server could support (which appears to be ~1000).

Thoughts?

wang jun

unread,
Dec 6, 2016, 5:26:48 AM12/6/16
to kurento, mbel...@gmail.com
what about recently ,I use kurento server on cpu(4core) memory(8G),only support 40 clients,20 persons ,so I have to add 20+ ec2 

I desire someone tell me how to increase performance 

thanks

2owl...@gmail.com

unread,
Mar 3, 2017, 10:12:34 AM3/3/17
to kurento, mbel...@gmail.com
wang jun, 
I'm with http://pluot.co
we also are needing to use KMS as an SFU .. ideally with a "Last-N" topology similar to jitsi-meet.

We've extensively performance tested this call scenario with KMS,Jitsi and Janus.
Janus wins handily, but does not support Plan-B which we need right now.

Jitsi also beats KMS, but retrofitting Jitsi into our architecture looks to be a messy ordeal that we likely won't pursue.

All along we've wanted to use KMS .. hopefully there is an obvious solution we haven't found yet.  I'm spending more time digging deaper into the forum and documentation.

- Chris

Micael Gallego

unread,
Mar 3, 2017, 6:00:28 PM3/3/17
to kur...@googlegroups.com, mbel...@gmail.com
Hi Chris, 

We are very interested in the performance comparison between Janus, Jitsi and KMS. Can you share that information with the Kurento Community? 

I'm sorry but Kurento Media Server currently doesn't support SFU and therefore is less performant than Jitsi and Janus. On the other side, KMS allows richer media topologies, allowing to connect RTP cameras, etc...

If performance is key in your use case and you want to use Kurento, remember that you can fund the development of this feature and Kurento development team will implement it. 

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/5811ab86-ce25-4b2a-aed8-5bc6c90cc05a%40googlegroups.com.

Micael Gallego

unread,
Mar 3, 2017, 6:30:55 PM3/3/17
to kur...@googlegroups.com, mbel...@gmail.com
I would like to clarify what I've said in my last email because it can be confusing. 

KMS is an SFU because it doesn't decode and reencode the media. But, it is not as optimized as other servers like Jitis or Janus because KMS execute RTP de-payloading and re-payloading when processing the media forwarding. 

This extra process is the main difference with other servers and this extra process impact in the performance.

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

Benoit Schmitlin

unread,
Mar 14, 2017, 10:30:15 AM3/14/17
to kurento, mbel...@gmail.com
Thank you Micael.

Is it on the Kurento roadmap to support media forwarding without RTP re-payloading? This would be an amazing feature for lowering cost and complexity for us (and others on this thread as far as I can tell).

Thanks.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
Mar 14, 2017, 10:32:36 AM3/14/17
to kur...@googlegroups.com, Marcos B
Hi Benoit, 

This feature is not in our roadmap right now.

We can implement some important features before "optimizing" kurento.

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

2owl...@gmail.com

unread,
Mar 14, 2017, 10:53:28 AM3/14/17
to kurento, mbel...@gmail.com
Hi Micael,
sorry for the late reply, I didn't see this email come in.

Here's a summary of our findings .. we repeated each of the tests more than 15 times.

The jitsi/janus tests were for 48 hours on a t2.medium ec2 instance
Excellent stability with both  .. we could've increased client count, but we don't need that many.

Janus - EC2 t2.medium : 150 clients with last-n == 4
Jitsi - EC2 t2.medium : 100 clients with last-n == 4


We could get 20 clients to run a 48 hour test on a t2.2XLarge but could not get 40 clients to run more than a few hours regardless of the type of ec2 instance


We've since been able to integrate jitsi using the REST API.

lemme know if you have any questions.
Chris
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
Mar 14, 2017, 10:55:44 AM3/14/17
to kur...@googlegroups.com, Marcos B
Please can you clarify what values are for Kurento Media Server? I can't understand your message.

Thanks

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Chris Smith

unread,
Mar 14, 2017, 11:07:53 AM3/14/17
to kur...@googlegroups.com, Marcos B


here’s a screenshot showing a subset of our KMS test runs





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/2VMn7BPfLm0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
Mar 14, 2017, 11:53:46 AM3/14/17
to kur...@googlegroups.com, Marcos B
I see two rows with the same AWS instance size: t2.2xlarge but with different client numbers, from 20 to 50. What means this difference? KMS can be executed with 50 clients without problems? 

What problems have you identified using KMS vs Jitsi or Janus? Only performance? Also stability?

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead




To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
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+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Chris Smith

unread,
Mar 14, 2017, 2:07:28 PM3/14/17
to kur...@googlegroups.com, Marcos B
We ran 2 tests..one with 20 and another with 50.

Above 20 there appears to be a slow memory leak that climbs to a certain point and CPU spikes to 100% and KMS locks up.

Performance is the main issue.

KMS seemed stable at very small meeting sizes (3-5 clients) but the memory issue shows up at >20

Sent from my iPhone

On Mar 14, 2017, at 11:53 AM, Micael Gallego <open...@gmail.com> wrote:

I see two rows with the same AWS instance size: t2.2xlarge but with different client numbers, from 20 to 50. What means this difference? KMS can be executed with 50 clients without problems? 

What problems have you identified using KMS vs Jitsi or Janus? Only performance? Also stability?

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

On Tue, Mar 14, 2017 at 4:07 PM, Chris Smith <2owl...@gmail.com> wrote:


here’s a screenshot showing a subset of our KMS test runs




<PastedGraphic-1.png>
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
Mar 14, 2017, 2:16:16 PM3/14/17
to kur...@googlegroups.com, Marcos B
Thank you very much.

We put this issues in our roadmap.

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
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+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 19, 2017, 4:15:17 PM5/19/17
to kurento, mbel...@gmail.com
Hi All,

What would you advise me to do if i have a hundred conference rooms with a maximum of 4-5 participants and still have composite video recording.For conference call i thought of jitsi but i need composite video recording and correct me if i am wrong, Last-N doesn't impact much if i have just 4-5 participants in a room.My idea is upscaling and downscaling aws instance(t2-medium which supports 1 room with composite and works like charm, at least in the given burst time) for each room.And that idea somehow doesn't seem bright to me and i am hoping for more elegant solution. 

I am open to suggestions people.
Thank you very much.



<PastedGraphic-1.png>



-- 
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/2VMn7BPfLm0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
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 post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
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/2VMn7BPfLm0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
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 post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
Reply all
Reply to author
Forward
0 new messages