Skip to content

Christofferos/VirtualMeet

Repository files navigation

VirtualMeet

A low-latency video calling application

Try it out live (use two devices): https://virtualmeetrtc.herokuapp.com/

Run the code yourself:

  1. Navigate into the backend folder:

    • cd backend
  2. Run the command:

    • yarn install && yarn client-install
  3. Start the frontend (client) and backend (server) concurrently:

    • yarn dev

A webRTC video chat app:

  • Typescript
  • Express
  • Signaling Server - Firebase

FEATURES:

A mesh network topology should work well up to 4 clients according to multiple sources.

Bit rate results from N clients in mesh network (marked in blue)

Deep Dive - Details:

Caller:

  1. Start a webcam feed
  2. Create an ‘RTCPeerConnection` connection
  3. Call createOffer() and write the offer to the database
  4. Listen to the database for an answer
  5. Share ICE candidates with other peer
  6. Show remote video feed

Callee:

  1. Start a webcam feed
  2. Create an ‘RTCPeerConnection` connection
  3. Fetch database document with the offer.
  4. Call createAnswer(), then write answer to database.
  5. Share ICE candidates with other peer
  6. Show remote video feed

Firebase: will work as a 3rd party server is required for signaling that stores shared data for stream negotiation

About

A webRTC video chat app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published