Hacker News new | ask | show | jobs
by hutzlibu 2182 days ago
Modern Browser have already build in, p2p, encrypted video chat functionality.

https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/...

I played around with it years ago, and it worked quite good and should have improved a lot since then, so why has no one come up with a solid solution, that does not require us to route our video calls through china, or microsoft servers?

I suppose the devil is, like always, in the details. So what am I missing?

Probably, that webrtc via p2p is hard to do for more than 2 people? But someone should have at least tried it?

3 comments

Yes. From my experience (as a user), webrtc is good for up to 4 people, and is rarely supported for more than 8. Reason is that few laptops can cope with many more incoming and outgoing videostreams in parallel.

Also, when in our company we tried using webrtc for standups, we often faced issues when participant A couldn't hear participant B, but participant C could hear them both. All that with video working in all directions. Or sometimes we had this issue with video.

Another reason why standalone applications like Skype and Zoom (which is known for trying to install its client too much) might be better than webrtc is that they might have better noise-cancelling algorithms than browsers.

Also, point of usability - compared to browser, standalone apps don't have permission dialogs ("do you want to allow this website to access your camera"?) and might be smarter with choosing correct microphone by default - this might be important for non-techy users who don't understand why system suggests them to choose from two microphones when there's only one plugged into the computer.

It really depends on your configuration (server-side configuration also plays an important role). Jitsi has an excellent webrtc server-side SFU (Selective Forwarding Unit) which does a seamless job at redirecting multi-layer VP8/H264 streams to the most appropriate user.

Each jitsi browser instance tells webrtc to encode and send multiple spatial layers of the same video stream (at different qualities), allowing users (and the SFU) to automatically choose which one to receive, according to bandwidth and network congestion.

The result is a seamless experience that just works, even with 16+ people (we've been doing jitsi conferences nearly every working day since April at our dance school, it works like a charm and is easily customizable).

Other solutions also use custom additional WASM modules for echo cancelation and noise suppression in webrtc; and jitsi has an excellent dropdown UI with previews for choosing audio/video sources (and sinks!).

Oh, nice! I actually didn't try jitsi and just assumed it had same issues as other webrtc apps.
Something like you describe was recently featured here on HN: https://news.ycombinator.com/item?id=23522689
That is what the browser apps use, like Google Meet, Facebook Messenger, Discord.