3

Hello I am new learning WebRTC and i am a bit confused, i understood that WebRTC works peer to peer but we need signaling, which of SimpleWebRTC, EasyRTC and Kurento can help doing that and why do we need them if node.js can do it? if they are not for signaling then what are they for exactly? frontend? backend? and what's the difference between them? Thanks!

h_h10a
  • 449
  • 5
  • 18
  • 1
    Kurento is a media server, not a signaling server. Signaling is not part of the scope of the project, though the tutorials use some signaling that might give you an idea. – igracia Aug 12 '16 at 06:48
  • @igracia does it mean we have to code our own signaling mechanism when using kurento? – h_h10a Aug 17 '16 at 10:15
  • 1
    Yes, that's correct. It also means that you can plug it into whichever signaling you already have in place, be it your own cooked solution, SIP or something else. – igracia Aug 17 '16 at 12:20
  • @igracia, Thank you, and by the way i just found this on github: https://github.com/Kurento/kurento-room , can you please tell me how to run that appliation? – h_h10a Aug 18 '16 at 10:56
  • 1
    Cool! Have a look at the [documentation](https://doc-kurento-room.readthedocs.io/en/stable/) for that project. All the info is there! – igracia Aug 18 '16 at 12:02
  • @igracia, Is it technically possible and legally allowed to use the same backend code (java) of [Kurento Room](https://github.com/Kurento/kurento-room) with a frontend of another project? – h_h10a Aug 19 '16 at 13:56
  • The license is [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) so yes, you can do that. You will need to specify the original license, though. – igracia Aug 19 '16 at 14:50

2 Answers2

7

Kurento: Even though webRTC is peer-to-peer sometimes you need more control over media. In kurento all the traffic go through Kurento Media Server(Where you can do things such as record media or add effects). To use Kurento you have to install Kurento Media Server and in frontend you have to use Kurento's java-script library

SimpleWebRTC : This is not used for signaling. It's a front-end java-script library for webRTC. To do signaling for simpleWebRTC you have to build a separate signaling server(or you can use an existing one like signalmaster).

2

They all are for signaling (mostly). And also for those people who don't want to get deep into all this WebRTC stuff, which is still under active development.

So, if you don't want to get into WebRTC but would like to focus on more important features of your project, then one of those frameworks/libraries is your solution.

If you think you're good at WebRTC, then you don't need 3rd-party frameworks.

From my personal perspective:

  • using of 3rd-party frameworks is not a good choice, because the 3rd-paty signaling server it is plus one point of possible issues with your project, - since you depend on the 3rd-party server (its API, latency, network problems, etc.)
  • all the mentioned frameworks/libraries are not much flexible. Since WebRTC is under active development and there is still no standard (RFC) for it, many WebRTC features can be implemented as a 'dirty hack' only (like high quality stereo audio broadcasting) - and there is often no solution for achieving that by using the mentioned frameworks.

So, if you need a simple WebRTC video-chat - using of the mentioned libraries might be a good solution. From the other hand, if you're going to utilize WebRTC heavily in your project - probably, the best choice is to rely on your own codebase only.

fycth
  • 3,410
  • 25
  • 37
  • 1
    but be aware of the cost of doing so. I've added numerous workarounds to simplewebrtc to deal with browser glitches over the last three years. – Philipp Hancke Aug 03 '16 at 05:56
  • So they're like Django and Flask for Python, right? And btw do you have an idea what xirsys.com is? is it a provider of STUN and TURN? or what exactly? I am still a bit confused about all these concepts .. thank you so much – h_h10a Aug 04 '16 at 16:06
  • @Hassen yes, xirsys provide turn/stun servers. STUN can be installed with no effort on your own hosted server. TURN can also be easily installed on own server, but with a bit more effort. So, again, this is for those people, who would not like to get deep into WebRTC. – fycth Aug 04 '16 at 16:20