Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mehditeymorian/webrtc-video-call
Video calling using WebRTC
https://github.com/mehditeymorian/webrtc-video-call
golang peer-to-peer signal-server video-call webrtc webrtc-demo webrtc-signaling webrtc-video websocket
Last synced: about 1 month ago
JSON representation
Video calling using WebRTC
- Host: GitHub
- URL: https://github.com/mehditeymorian/webrtc-video-call
- Owner: mehditeymorian
- Created: 2022-01-21T09:18:14.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-02-15T20:21:29.000Z (almost 3 years ago)
- Last Synced: 2024-06-19T16:32:36.116Z (7 months ago)
- Topics: golang, peer-to-peer, signal-server, video-call, webrtc, webrtc-demo, webrtc-signaling, webrtc-video, websocket
- Language: HTML
- Homepage:
- Size: 405 KB
- Stars: 17
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# webrtc-video-call
This project is a video calling application using WebRTC technology. It contains minimum requirements to provide a group video call.
[WebRTC](https://webrtc.org/) is a free and open-source project providing web browsers and mobile applications with real-time communication
via application programming interfaces.# Project Sections.
WebRTC is direct peer-to-peer connection which is done using WebRTC API in browsers and mobile applications.
But for starting a group call, it requires a mechnaism to share peers address and connectivity information with each other. This mechanism is called Signaling Server.
It keeps an open connection with each peer to exchange peers' address, connectivity info, and room events.This project uses Websockets to keep an open connection with peers. Also there are HTTP endpoints for room management.
Whenever a peer joins in a room, a join event send to other peers in the room, then other peers create offers and sent it to new peer;
The new peer answer the offer and a connection takes place(it is a lot more complicated than this, please read official documents and take a look at code to uderstand more).# How to run
The frontend is a collection of html files served as static files. build and run the project and you are good to go.
- Create or Join Room -> `ADDRESS/`
- Room -> `ADDRESS/room?roomId=[ROOM-ID]&name=[PEER-NAME]`# Demo
![create](https://github.com/mehditeymorian/webrtc-video-call/blob/master/assets/1.png)![room](https://github.com/mehditeymorian/webrtc-video-call/blob/master/assets/2.png)