holtwick / peer2school

👩🏻‍🏫 Simple P2P teaching platform starting from the 1st class
https://peer.school
MIT License
169 stars 67 forks source link

Video SFU / Conferencing #66

Open holtwick opened 4 years ago

holtwick commented 4 years ago

While developing the video chat solution in peer.school it turned out that multi-peer streaming is not practicable for a large number of participants due to bandwidth and performance (see #63). An SFU (Selective Forwarding Unit) was required that would receive participants video and audio streams and forward those the the participants, reducing the numbers of connections a client has to handle.

The current implementation uses Jitsi for this purpose: https://github.com/jitsi/lib-jitsi-meet

Other solutions might also be worth considering, like mediasoup:

This should also fix related issues like #65 #34

msahyoun commented 4 years ago

In addition these might also be possible candidates: https://github.com/meetecho/janus-gateway https://www.kurento.org/ https://antmedia.io/ https://github.com/open-webrtc-toolkit/owt-server

holtwick commented 4 years ago

Some performance observations: https://webrtchacks.com/sfu-load-testing/

Another candidate seems to be medooze. Looks like there is an e2e encryted version under way https://github.com/medooze/sfu

In general privacy considerations should be addressed. See also #68

erotavlasme commented 4 years ago

You could consider using multiparty meeting that is based on mediasoup. It scales better than jitsi thank to VP9 codec which reduces up to 40% the bandwidth requirements. If you are looking to e2ee conference, there is the PERC project by IETF, but is still a draft.

holtwick commented 4 years ago

Awesome, thanks @erotavlas-turbo for the details. Indeed mediasoup looks great. I removed the Jitsi feature anyway for now to strengthen the privacy and server-less features. PERC seems to be some time away from becoming a real world option with broad support in modern browsers. BTW, to experiment a bit more with multi user WebRTC scenarios I created a spin off that focuses on the video chat feature: https://brie.fi/ng

erotavlasme commented 4 years ago

Maybe you are interesting at this: jitsi is working on e2ee conference.

holtwick commented 4 years ago

Absolutely! Thanks for sharing the info @erotavlas-turbo

erotavlasme commented 4 years ago

Finally, jitsi is actively working on VP9 support.