/Video-Peers

Real Time P2P Video Chat Application Built using WebRTC & Socket.io

Primary LanguageJavaScriptMIT LicenseMIT

VideoPeers - Real Time P2P Video Chat Application

Description

This is a real time video chat application built using WebRTC, Socket.io, Node.js, Express.js, and Next.js. It allows users to create a room and share the room ID with other users to join the room for a peer-to-peer video call.

Screen Shots :

hirentimbadiya

How To Use :

First of all join any room lets say 7 for example with your email and room no. as 7 and then notify other person to enter in room no. 7, now you will get call button on screen this will allow to call other person and then call will be initiated and other person will be having a button called Send Streams and as other person clicks Send Streams Button then video call will be initiated.

Key Features

  • Create and join video chat rooms using room IDs
  • Real-time peer-to-peer video calling using WebRTC
  • Audio mute/unmute controls
  • Video Hold/Play controls
  • Call End option
  • Responsive Design
  • Built with Next.js, Node.js, Express, Socket.io

Installation

  1. Clone the repository
git clone https://github.com/hirentimbadiya/Video-Peers.git
  1. Install dependencies for Client Side
cd client  #in Video-Peers/client
npm install
  1. Install dependencies for Server Side
cd server #in Video-Peers/server
npm install
  1. Run the application
  • Run the client side
    cd client #in Video-Peers/client
    npm run dev
  • Run the server side
    cd server #in Video-Peers/server
    npm run dev

Technologies used / Prerequisites Of The Project

Working Demo

VideoPeers.-.Google.Chrome.2023-11-17.01-32-11.mp4

Future Scope

  • Text chat support in rooms
  • Screen Sharing Feature
  • Multiple Participants in a room
  • Video recording option

My Learnings

By Building this project I learned about the following concepts:

  • WebRTC (Web Real-Time Communication) is a technology that enables real-time peer-to-peer communication between browsers and mobile applications. It is an open-source and free project that used to provide web browsers and mobile applications with real-time communication (RTC) via simple application programming interfaces (APIs).

  • Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server. It consists of: a Node.js server: Source | API. a Javascript client library for the browser (which can be also run from Node.js): Source | API.

  • Next.js is a React framework that enables several server-side rendering (SSR) features such as static site generation (SSG), automatic code splitting, server-side rendering, and client-side routing. It is a framework that is built on top of React.js and Node.js.

License

MIT

Author