7 ms·
Free, P2P, disposable group video calling app for the web
- vasanthv 4y agoTalk is a free, peer-to-peer, disposable group video calling app for the web. Works in all major browsers. No signups. No downloads. 100% peer-to-peer.
- backspace_ 4y agoIf it's disposable, how many uses can you get out of it before it is worn out and has to be replaced?
- lxgr 4y ago> 100% peer-to-peer. Is this even possible with WebRTC? How do clients initially learn about each other's IP addresses and ports? There seems to be some logic to facilitate that in the server code: https://github.com/vasanthv/talk/blob/master/server.js https://github.com/vasanthv/talk/blob/master/server.js
- clemensley 4y agoI agree, this is super cool but it's not 100% peer to peer as WebRTC requires a central server to establish the connection as far as I know.
- koolala 4y agoIs LAN P2P? If yes, WebRTC is 100% P2P over LAN is it not?
- lucb1e 4y agoI still think the clients need a coordination server to discover each other (won't use multicast/broadcast traffic). You could probably make a browser that does this, but if they already do then I am not aware of it.
- palata 4y agoIt does not require a central server, signaling is left as an implementation detail. Implement a p2p signaling system, and that will be p2p.
- palata 4y agoSignaling is up to the implementation. You can use carrier pigeons if you want. Would that qualify as p2p? :)
- lxgr 4y agoPigeon-to-pigeon connection establishment, I like it :) I've never considered using WebRTC without STUN or TURN, but apparently it's quite possible, enabling LAN-only usage: https://stackoverflow.com/questions/30742431/webrtc-on-isolated-lan-without-ice-stun-turn-server https://stackoverflow.com/questions/30742431/webrtc-on-isola...
- guerrilla 4y agoIs this like jump.chat where you share links? What's meant by disposable?
- forgotpwd16 4y agoYes, it's similar. This one is also open source so can be self-hosted. JumpChat also has file share I see.
- boredumb 4y agoVery neat. Nice to see more free and easy p2p stuff. Getting a p2p video/audio/screen share application going is definitely a lot less work than it once was. https://teamvideo.app/ https://teamvideo.app/ webRTC stuff has a ton of cool potential for p2p projects, hopefully more and more of it starts cropping up.
- klabb3 4y agoThe issue is that webrtc is very complex, bloated and hard to debug. It’s the only way to do browser based p2p though. Plug: I’m working on a much simpler server-assisted p2p lib with relay fallback, over tcp, with BYO identity/auth. This is certainly for different use cases, but I thought I’d mention it. If anyone is interested, I’d be curious about your use cases.
- forgotusername6 4y agoWhich parts are complex? I got a webrtc video chat app up and running from nothing in a weekend.
- klabb3 4y agoThe protocol and spec mostly, but also the establishment dance and too many knobs. Which client and server libs are you using? Chances are if you dig in their deps it’s messy. It’s also designed for real-time video and audio (udp), so reliable high-bandwidth streaming p2p apps takes a back seat. That doesn’t mean it’s not the right choice to build stuff with today, especially browser based real-time apps! I’m all for webrtc getting easier.
- forgotusername6 4y agoI didn't use anything other than the basic webrtc examples from github and a rather basic exchange using a web socket (server was express). Obviously not completely P2P because you need to exchange capabilities somehow. Tbh it probably took me longer to get the domain and coturn set up than the webrtc. I didn't look into how much bandwidth was being used. I was mainly using it for 1-4 person calls during lockdown. I wanted to write a video calling app that I could have full control of.
- folkrav 4y ago> The sweet number is somewhere around 6 to 8 people in an average high-speed connection. Based on mesh architecture WebRTC, so unfortunately not really an option for anything but small calls. WebRTC is fun, but in the end, someone has to do the encoding, and w/ mesh, the client pays the price.
- koolala 4y ago6 to 8 people is a lot even without using Star-Configuration WebRTC. For example, how many people do you talk to at once face to face in real life in an average group? 4 to 6 people calls its like the size of a normal table at a restaurant. It is the typical group conversation. You could argue large group calls become more and more unnatural after 8 total people.
- lxgr 4y agoThe issue isn't really encoding but bandwidth, specifically upload bandwidth (due to needing to send your own stream to all n-1 other participants rather than just one SFU, which then fans out to n streams). Many popular group video call solutions are end-to-end encrypted these days, so there isn't any re-encoding happening.
- bobkazamakis 4y ago>Many popular group video call solutions are end-to-end encrypted these days, so there isn't any re-encoding happening. What format do you think an end2end encrypted video comes in over the wire?
- lxgr 4y agoSRTP, in most cases, at least for point-to-point encryption. I'm not too sure about end-to-end encryption in WebRTC, though; I remember reading that something different happens there [1]. [1] https://webrtchacks.com/you-dont-have-end-to-end-encryption-e2ee/ https://webrtchacks.com/you-dont-have-end-to-end-encryption-... and https://webrtchacks.com/true-end-to-end-encryption-with-webrtc-insertable-streams/ https://webrtchacks.com/true-end-to-end-encryption-with-webr...
- forgotpwd16 4y agoLooks cool. Usually, when needing something like this, I use Jitsi Meet but having options is nice.
- gnicholas 4y agoCan someone explain how the two differ (either technically, or from the perspective of a use who just wants reliable/easy/private calls)? I've started using jitsi more because of Zoom's time limit enforcement, but I'm looking for alternatives also.
- koolala 4y agoHow many concurrent users can it support on a single cheap nodejs server? Or is the client the bottleneck?
- TranquilMarmot 4y agoSince it's all peer-to-peer, there isn't anything being done on the server (I don't even think there is a server?) Like others have said, the bottleneck will be your client's upload speed- if you have a meeting with 10 people, you're going to be sending your video out to 10 different peers.
- EVa5I7bHFq9mnYK 4y agoCan't you send 1/10 to each, and they will in turn send to one another, so the load is equal on all nodes?
- codetrotter 4y agoIs node and npm required only for building the project, or also for running it? In other words, can this run if I upload the html, js and other files to static hosting?
- lioeters 4y agoI'm not associated with the project, but I found that it's not a static site. Node.js is required for the thin WebSocket layer. https://github.com/vasanthv/talk/blob/master/server.js https://github.com/vasanthv/talk/blob/master/server.js The actual P2P handshake is done through these default ICE servers defined in the client script. https://github.com/vasanthv/talk/blob/master/www/script.js https://github.com/vasanthv/talk/blob/master/www/script.js const ICE_SERVERS = [ { urls: "stun:stun.l.google.com:19302" }, { urls: "turn:openrelay.metered.ca:443", username: "openrelayproject", credential: "openrelayproject" }, ];
- dtx1 4y agoDoes this work if everyone is behind a different NAT? If so, how?
- lxgr 4y agoWebRTC is pretty good at getting through complex NAT constellations, trying to punch through NATs via STUN/ICE and falling back to TURN in case that fails (but the latter requires a central coordination server). It only needs a lightweight signalling server to relay each client's ICE candidates (which is more or less an opaque string to the server) to their peers, and if that succeeds, they can communicate P2P (audio, video, and even opaque byte streams). All of the complex NAT traversal logic and the encrypting P2P protocol stack is baked into all modern browsers (or non-browser clients using a WebRTC library); the only thing that's needed is the signalling server, and practically a STUN server to facilitate ICE (but these use very little bandwidth and there are public ones available).
- palata 4y agoMost of WebRTC is arguably about handling the NATs, actually.
- mp85 4y agoWith great pleasure I contributed to this fantastic project! Simple and functional! If someone have pleasure, can try also the p2p - sfu - c2c versions of mirotalk: https://github.com/miroslavpejic85 https://github.com/miroslavpejic85 A happy weekend to everyone and a merry Christmas!
- lucakiebel 4y agoHey! We were using mirotalk for p2p video consultations, but switched to jitsi because of the google translate integration. I know searching for all strings and replacing them with placeholders is a giant task, but google is really bad at translating single words without context
- omeze 4y agoThis is awesome. I wonder why no modern browsers have this baked in.
- eks391 4y agoBrave has something similar to this baked in
- fancazzista 4y agoBrave just uses Jitsi under the covers.
- xorcist 4y agoWhat are my options for running a larger scale web conferences (up to a thousand endpoints perhaps, handful of them speaking) with free software and regular web browsers involved? I guess past a certain point it's more like streaming than group calls. What have larger f/oss events such as FOSDEM used during the pandemic and what did they have to change to get it to scale?
- gnicholas 4y agoThis is great, since many people are looking to get away from Zoom. I was on a call the other day that was hosted by a very large startup (raised $200M). They had to end the call at 40 mins "because of our subscription tier". If companies this big don't want to pay a penny to Zoom, that's saying something! It doesn't mean there's a great market opportunity for a paid tool, but it does mean that free tools will get good usage. I'm looking forward to the normalization of Jitsi and other alternatives, so people don't think I'm a weirdo for sending out links to services they've never heard of.
- killingtime74 4y agoI agree with everything you said, but those guys are just cheap
- jiangplus 4y agoAlso see keet (https://keet.io/ https://keet.io/), a peer-to-peer chat and video app
- thepra 4y agoIs there a way to integrate it into other software products?