Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why kurento media server when compared with ant-media is performing low?

I am trying to scale kurento media server for thousands of concurrent calls.

I am planning to use OpenVidu Pro for scaling.

I also kept an alternative to develop my own app-server and manage kms nodes.

What I am concerned about is ant-media-server with the same hardware capacity as my kms node supports much more concurrent calls when compared to kms.

Source of the above information

If the above information is true what extra does kms do so that it is using more hardware resources?

What can be done to optimize kms.

Please shed some light if possible.

like image 296
wrufesh Avatar asked Jan 01 '23 00:01

wrufesh


1 Answers

@Maximillian giving misinformation. Comparing apple and orange is ridiculous.

I guess the main problem is confusing the streaming protocol.

For low latency, you should use webrtc and both of ant media and kurento support this. As @Maximillian said you should decide , do you need low latency with huge audince or latency not matter ? Scenario is one to many or many to many ?

enter image description here

The 8-10 s latency is in HLS not in webrtc , and it's not ant-media or other Rtmp Hls server fault, it's the implementation/design of HLS. ( Not meaning LL HLS )

In Hls you need at least 3 ts package and it should be minumum 2 second ( default 10 seconds ) that's why you see the Hls stream with 6-30 seconds latency.

In your question, you point performance / resource usage at webrtc and ant media uses system recourse better than kurento. Let me explain why ?

Kurento is a great media server and designed for making extra operation such as filtering, image rendering, opencv implementation, Rtp Endpoint, Rtsp endpoint, etc. However this kind of extra feature implementation cause a high cpu usage even if you never activate this. Since 2015 kurento performance increasing and getting better and better . Unfortunately not enough for huge audince. For example : in kurento when you have 4 core with E5, you can only handle 80 concurrent EndPoint. If your scenario , 4-5 active stream publisher with 1000 concurrent viewer in the same room, you better mining coin instead of handling conference :) you will need lots of core.

Note that also in kurento there is no configuration or tool for your private dedicated / virtual server to scale automatically.

You need to develop your custom docker manager and stream republisher/ restreamer to distribute your stream. Believe me it will be very painful. @2016 at that time there is a project on amazon market ElasticRtc, managing the clustring / scaling the Kurento at amazon cloud. However after twillio acquires kurento, it stopped.

Ant-media webrtc product is really good and better than other sfu's. You can see the performance comparison here Ant Media, Jitsi and Janus Which one is best to start live voice stream one to many in Mobile Applications?

As you see, there are many options for open source / paid sfu's such as mediasoup, medooze, janus, flashphoner, wowza etc, I generally prefer ant media .

  • Easy to setup
  • Easy to integrate the api ( In kurento it's also painful at media pipeline and endpoint management )
  • Cheaper than other paid media engines ( wowza, flashphoner )
  • Easy to preparing cluster
  • Support Rtmp ingest, Hls & webrtc playback
  • Support Webrtc ingest, Hls & webrtc playback
  • Api based start / stop recording stream individually
  • Support simulcast at webrtc and ABR at hls
  • With same spec server
    • Kurento 250 endpoint
    • Wowza 650-700 endpoint
    • Janus & mediasoup 500-750 endpoint - Ant media 1400 endpoint
like image 176
Emre Karataşoğlu Avatar answered May 16 '23 09:05

Emre Karataşoğlu