decentralized-video-chat icon indicating copy to clipboard operation
decentralized-video-chat copied to clipboard

Add group video calling

Open blacklightpy opened this issue 4 years ago β€’ 15 comments

Seems like only two users can join at a time while the others have to wait

blacklightpy avatar Apr 10 '20 16:04 blacklightpy

Group video calling would either need all the users sending video feed to every other user which bottles up the bandwith or you would need an SFU in between which costs money so the feature can't be provided for free ideally. Although a group of at max 4 users using only p2p should be possible

Anil-matcha avatar Apr 10 '20 20:04 Anil-matcha

I am experimenting with having a single beacon server, but that's very expensive and I'm a college student so I don't know if I will do that. I am looking into other ways to do it P2P as well. I think for small groups <4 P2P should be possible. https://testrtc.com/different-multiparty-video-conferencing/

ianramzy avatar Apr 10 '20 21:04 ianramzy

With regards to the single beacon server, I am happy to provide a Linux box on Azure for you to experiment with if you'd like?

captainhook avatar Apr 11 '20 02:04 captainhook

Yeah that would be great! @captainhook

ianramzy avatar Apr 11 '20 14:04 ianramzy

If someone also wants to make a branch to experiment with 4 people p2p calling I would be super grateful!

ianramzy avatar Apr 11 '20 14:04 ianramzy

Yeah that would be great! @captainhook

I have emailed you :)

captainhook avatar Apr 11 '20 21:04 captainhook

Making a SFU server it's not a trivial task, perhaps you can use some open source projects like janus or mediasoup and make docker images for easy installation and integration. Also you can add a turn server in the image, since turn server it's not free.

You maybe will find easy to implement mediasoup since use Nodejs/Javascript

OrlandoCo avatar Apr 12 '20 23:04 OrlandoCo

How about a one side video push (by the host person) and all the participants are just subscribers of the that video feed, it’s like a live video broadcasting, but viewers can chat and do all sorts of actions.

unruledboy avatar Apr 14 '20 04:04 unruledboy

How about a one side video push (by the host person) and all the participants are just subscribers of the that video feed, it’s like a live video broadcasting, but viewers can chat and do all sorts of actions.

In a one to many scenario, if one of the users it's on a poor network and can't handle the bitrate, it's going to affect all the users, because the host will try to adjust to the worst case scenario. Also since webRTC it's a full MESH topology the host will upload N videos.

So a SFU server it's still required and it must support multicast/SVC for better quality.

OrlandoCo avatar Apr 14 '20 04:04 OrlandoCo

if you added an SFU server what would be different than a project like jitsi

husseinraoouf avatar Apr 15 '20 08:04 husseinraoouf

@husseinraoouf jitsi does not work on mobile browsers, just ,tested with chrome & safari in iPhone, but this project does work with Safari in iPhone

unruledboy avatar Apr 15 '20 08:04 unruledboy

mediasoup actually looks promising, although I'm not quite sure how to integrate this with a STUN server yet. This would also result in additional costs for hosting and remove peer-to-peer connections.

Because of this, for a group of 3-4 people we should probably rather use a mesh topology in order to keep this peer-to-peer whenever possible.

Chaphasilor avatar Apr 15 '20 09:04 Chaphasilor

There are a number of GitHub repos I am currently exploring about this: https://github.com/tom-james-watson/p2p.chat https://github.com/muaz-khan/WebRTC-Experiment/tree/master/video-conferencing

ianramzy avatar Apr 15 '20 15:04 ianramzy

https://github.com/peer-calls/peer-calls

ianramzy avatar Apr 15 '20 15:04 ianramzy

Okay I have done more research and for group calling we dont need to worry about making a SFU server yet.That would give better performance, but at the cost of scalability and server costs

I think a basic p2p mesh configuration would be able to handle up to 4 people in a call with minimal problems

ianramzy avatar Apr 17 '20 19:04 ianramzy