ianramzy / decentralized-video-chat

🚀 Zipcall- Acquired @ 250k users 🚀 Peer to peer browser video calling platform with unmatched video quality and latency.
https://zipcall.io
3.31k stars 502 forks source link

Call recording #73

Closed alesanchezr closed 4 years ago

alesanchezr commented 4 years ago

How difficult will it be to implement call recording? Maybe use the twillio API for that as well? At the end of the call when you click on "end call" you get the link of the recording.

I'm willing to contribute on that but maybe you guys can help me start by pointing me on the right direction.

Chaphasilor commented 4 years ago

The Twilio API doesn't help with this, because WebRTC is a peer-to-peer protocol, which means the data is transmitted end-to-end (or at least it should be).

Call recording is therefore basically impossible, because websites can't interface with the file system, and keeping the whole call in memory isn't feasible.

alesanchezr commented 4 years ago

Oh ok, but maybe something like this?

What we do in server-side recording is route our media via a media server instead of directly between the browsers. This isn’t TURN relay – a TURN relay doesn’t get to “see” what’s inside the packets as they are encrypted end-to-end. What we do is terminate the WebRTC session at the server on both sides of the call – route the media via the server and at the same time send the decoded media to post processing and recording.

Maybe I can add some plugin to incorporate that. I will keep doing research and see if there is a "plug-n-play" way to do it.

Chaphasilor commented 4 years ago

You are free to look into it, but this more or less defeats the purpose of having a peer-to-peer connection \^\^

Another idea is to have some kind of 'recorder' join the call, i.e. a client with the purpose to record all video streams from the actual participants. This seems easier to implement, without having to change zipcall internally!
Check out #64 for more infos :D

alesanchezr commented 4 years ago

Thank you!