3-4 years ago, when I was looking for something that did what Janus does, I kept searching for "web rtc server" and not finding anything. I too struggled with what someone would call a thing that intercepted web RTC so it didn't have to go direct and added additional functionality, and "server" is all that came to mind.
--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "meetecho-janus" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/meetecho-janus/r3f0_81mNR8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to meetecho-janus+unsubscribe@googlegroups.com.
Hi all.We have studied deeply Janus, Kurento and Freeswitch.From Janus, we love the "lightness". It feels so speedy and reliable. It is very easy to build a service in a couple of days, but it comes with a price. You can only do what some of the plugins can do, and the way they are designed to work (unless of course you write your own plugin, but that is not exactly easy or quick). If you want to connect a SIP endpoint to a SFU conference, you are out of luck. If you have your own users database, or SIP stack, it is not easy to use the API, you have to "emulate" user registrations, fake SIP requests, etc., only to get a "plain" SDP. Each plugin has a quite different API. Under this circumstances, it is not easy to use any more (but, again, IT IS for a 'normal' use case).
With Kurento, it is quite the opposite. It has a clean, powerful "agnostic" API and you can build nearly everything, but you have to provide your own signalling (what is a big plus of us, but probably a problem for many) and think a bit what you want to achieve. The JS and Java APIs are very well documented, but it is not easy to know how to connect the pieces together. It also "feels" heavier and more inestable than Janus, and it still misses some basic options like being able to fix the external IP and avoid generating 40 ICE candidates for each call. (BTW, Kurento does not transcode everyhing!! In fact, you can connect any number of clients to any endpoint (webrtc or rtp) without transconding). Another big plus is that, when recording, the recorded file is playable immediately without any post-processing, and is seekable from WebRTC or HTTP (you can "jump" to any point in the file, even on WebRTC). Also, we are facing problems with Kurento and last Chrome (only on OSX, Windows and Linux are fine, also Firefox on OSX).Freeswitch has the best MCU module out there, by far. It also has PBX characteristics like DTMF detection, and the broader codec selection if you need transcoding (Kurento can only transcode mp4<->vp8). However, it also includes a signalling layer you have to emulate (SIP and Verto) if you use your own. It does not have (and won't have) anything similar to a SFU.We are writing a "meta" media server based on Janus, Kurento and Freeswitch (we may even add Jitsi in the future), because we think all three have advantages and disadvantages, and they are good for some cases and not so good for others:
- If you want a MCU (or video mixing), transcoding or PBX features, we use Freeswitch. Also for voice-only projects.
- If you want a standalone WebRTC Proxy or SIP <> WebRTC proxy, or a standalone SFU, go Janus
- If you need a more complex scenario (like SIP to SFU, or an SFU but you want to control the offer/answer process) or want video recording, we go Kurento.
- If you need to reuse the same WebRTC connection for different things, this is allowed only by Kurento and Freeswitch.
As I told Lorenzo, IMHO, Janus would be much more powerful if it offered the option to use and connect individual "elements" in the Kurento style: WebRTC endpoint, RTP endpoint, SFU, recorder and player, and not been only tied to specific plugins or behaviours. I'm sure the backend would support this, and you can do this writing a "special" plugin, but that is not easy for us (we are not C programmers). It would be then a lighter and more scalable alternative to Kurento for many more use cases.