Hacker News new | ask | show | jobs
by ramraj07 2143 days ago
Everyone starts with p2p and realizes it doesn't work. OG skype predates fast internet and expectations of extremely smooth conferencing between arbitrary number of users. A centralised server is basically a requirement for acceptable performance.
2 comments

There is a step between peer to peer and centralized, and that is federated. For most services, that should be the sweet spot.
How do you federate a video call with 10 people?

Federation isn't needed because you don't need to have servers that communicate with each other, you just need some server that can host a given video call. So any open source solution works, no federation architecture is required.

The "how" would depend on how you implement it. The servers could determine at the beginning which one gets to host the call and tell all participating clients to connect there, or there could be some client-server-server-client model akin to e.g. IRC, where you would save some server bandwidth in exchange for worse latency (more hops). I'm just spitballing here, mind you.
The same way people federated email forever? Local servers that contact upstream servers?
My question is not "how does federation work?" It is "in what situation is federation useful for video conferencing in a way that a single open source server is not?"
Depending on the network topology and number of callers, you could get some benefit from a multiple server model. Large meetings across offices could make use of a server at each office to streamline bandwidth. Not a good fit for today's reality of everyone from home or your scenario of 10 callers. Could still be useful for EU vs US callers to connect locally and only one stream across the atlantic. Multiparty e2e calling is already challenging, and adding multi-hop routing might make it more so, though.
Restatement of the other responder:

You put a repeater on (at least) one side of every bottleneck to remove redundant traffic.

What does the server do that the callers can't? Compress video?
It condenses the video streams so each participant doesn't need streams directly from every other participant. Also helps with NAT punching.