A free peer-2-peer WebRTC based video conferencing.
This video conferencing software combines three technologies to create an all-in-one web application:
- WebRTC with html/JavaScript in the client-side browser to handle the user interface.
- WebSocket communication channel between browser and signaling server.
- Signaling server to facilitate the connection information, written in go.
Advantages of peer-2-peer connection-oriented video conferencing:
- Privacy for the users since none of the video or connection information is stored on a server.
- Latency on videos will be ideal because video routing and processing does not use an intermediary server.
- Reduced management expense for the server, since the server merely forwards messages and does not handle live video or store information in memory.
Disadvantages:
- Higher bandwidth usage, since the client must process more video streams from each peer.
- Fewer centralized features, such as effects or controls.
- Requires a few-second delay period to get valid peer-2-peer connection details.
A deployed version is available at https://hitime.live/.
you can also deploy your own server using the docker image provided at dockerhub with gtstef/hitime
or building locally.
Note: The features on the frontend require an HTTPS connection, so any build should be done behind an HTTPS connection. I have included the generate_cert.go
standard library for quick mock certificate creation for local testing.
Since WebRTC is a browser-based technology, only certain browsers support it.
While I was happy to see it has broad compatibility across browsers, I found that Safari had issues.
✅ | ✅ | ✅ | ✅ | ❌ |
Safari is the only exception, I believe it could work based on the Safari version. I used 17.4.1
on macOS, the video never shows up on either side.