5 ms·
How does it compare with Janus? Janus seems well tested and it's available in Linux distributions.
by throwaway919379 6y ago
How does it compare with Janus? Janus seems well tested and it's available in Linux distributions.
- q3k 6y agoIt's not written in C! (it's Go) Also, it doesn't seem to be open source. From sfu.go: // Copyright (c) 2020 by Juliusz Chroboczek. // This is not open source software. Copy it, and I'll break into your // house and tell your three year-old that Santa doesn't exist.
- throwaway919379 6y ago2 reasons to use Janus then :)
- thanatropism 6y agoI'm looking at Janus and it seems mighty complicated. I also already have Zoom and BlueJeans binaries on this Ubuntu laptop... I'm not rms, I can't get away with closed source-aversion.
- Sean-Der 6y ago(Developer on Pion so take my opinion with a grain of salt) Janus does WAY more (audiobridge, RTP ingestion etc...) so I think if you need all that Janus is your best choice! Pion is more for people that want fundamental building blocks. There are also other SFUs using Pion! The goal of the project was to make it easier to build software like this. * https://github.com/pion/ion https://github.com/pion/ion * https://github.com/peer-calls/peer-calls https://github.com/peer-calls/peer-calls * https://github.com/fox-one/mornin.fm https://github.com/fox-one/mornin.fm You can also see a bunch of other projects https://github.com/pion/awesome-pion https://github.com/pion/awesome-pion
- saurik 6y agoAs far as I have been able to tell, after having done a few full days of research recently on SFUs (mostly as a side project), is that they are very complicated to do well: the work being poured in to, for example, Janus is not at the WebRTC layer, but is instead in dealing with stuff like VP9 SVC, doing H.264 in an end-to-end encrypted context, how to handle a large number of receivers at different quality levels when someone new joins and needs a key frame... there are a lot of (supposedly) hard challenges here, and no SFUs that seem to do it well. Are you saying Pion does that stuff--as the library doing "all the heavy lifting" (which you say in another comment, but I am responding here as what I am writing might be useful to the people interested in Janus)--or is it, as I had understood, merely the WebRTC protocol implementation? Like, I appreciate that WebRTC isn't a small protocol to implement, but it is specified pretty fully and has an open source reference implementation: if you tasked me with writing one it would be "nothing but a lot of typing"... I am sure I would get frustrated occasionally with some implementation quirk, but it isn't exactly "heavy lifting". However, building a good SFU is (supposedly) still an area of active research, and all of them still only support a scant subset of expected functionality. I watched a talk on Medooze and got super excited about it, but then it turned out to have just been bought by some other company and isn't really available and frankly never even really got finished (like, that entire presentation seemed ended up feeling like the developer was massively over promising what his system could actually handle). Janus only just got around to end-to-end encryptions stuff weeks ago and it is more of a prototype, it technically does VP9 SVC but the client has to manually request different quality levels as it doesn't take advantage of any of the control feedback, it requires separate high-overhead peer connections for every single video feed due to an architectural decision made a long time ago (there is a patch from the developer to fix this but it has been sitting unmerged for a year or two, and now he says he needs to rewrite it from scratch), and has a really awkward "room" abstraction coupled together with its SFU as it doesn't need have very good layering. I had actually found this "Unnamed SFU" project a while ago as it got released and was momentarily interested in it, but it isn't even trying to support the new end-to-end encryption features. Jitsi now supposedly has end-to-end support but no VP9 SVC, and isn't really designed as a reusable component at the SFU level in the first place. (I am not able to off of my head make comments about Mediasoup.) If you are actually saying an SFU is a simple project, you should really build one so we can actually have a good one finally: I have gotten the feeling you would come up with an API surface for it that would be extremely flexible and compose-able for all our myriad use cases. Or if Pion is already doing most of this, as the library doing "all the heavy lifting", it would be fascinating to see a comparison of which of these various SFU-level features it is handling (all of them? that would be awesome ;P).
- jech 6y agoJanus is a great piece of software. It's extremely flexible due to its plugin system, and implements all of the fun bits of the WebRTC protocol suite that make it so challenging to build a performant SFU. The unnamed SFU has different goals. It's aimed at doing just one thing — lectures and talks —, but to scale to thousands of users on a $10 VPS, and to be trivial to deploy (just copy a single binary and a few HTML files to your server). In a sense, Janus pays the price of its flexibility: there are just too many options that the user has to choose among. The Unnamed SFU tries to eschew options, and therefore be simple enough for your mother to install on her VPS (or even on her laptop — why not?).