Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marufk21/streamtalk
StreamTalk is a real-time video calling app built with Next.js, Socket.IO, and WebRTC, enabling seamless audio and video communication.
https://github.com/marufk21/streamtalk
nextjs socket videocalling webrtc
Last synced: 19 days ago
JSON representation
StreamTalk is a real-time video calling app built with Next.js, Socket.IO, and WebRTC, enabling seamless audio and video communication.
- Host: GitHub
- URL: https://github.com/marufk21/streamtalk
- Owner: marufk21
- Created: 2024-10-02T19:36:51.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-11-28T14:28:27.000Z (3 months ago)
- Last Synced: 2025-01-27T13:24:32.714Z (19 days ago)
- Topics: nextjs, socket, videocalling, webrtc
- Language: JavaScript
- Homepage: https://streamtalk.onrender.com
- Size: 69.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# StreamTalk
**StreamTalk** is a real-time video calling application built using **Next.js**, **Socket.IO**, and **WebRTC**. This app allows users to connect with each other via live video and audio, offering seamless and interactive communication.
## Features
- **Real-time video and audio calls** using WebRTC.
- **Peer-to-peer communication** through WebRTC.
- **Socket.IO integration** for signaling between clients.
- **Responsive design** built for multiple screen sizes.## Tech Stack
- **Frontend**: Next.js (React Framework)
- **Backend**: Node.js (with Socket.IO)
- **Real-Time Communication**: WebRTC
- **Styling**: Tailwind CSS## Getting Started
### Prerequisites
- Node.js (>= 14.x)
- npm (>= 6.x) or yarn### Installation
1. Clone the repository:
```bash
git clone https://github.com/marufk21/streamtalk.git
```2. Navigate to the project directory:
```bash
cd streamtalk
```3. Install the dependencies:
```bash
npm install
```or
```bash
yarn install
```### Running the Application
1. Start the development server:
```bash
npm run dev
```2. Open your browser and navigate to:
```
http://localhost:3000
```3. Ensure your backend Socket.IO server is running on the correct port for signaling.
### Project Structure
- **/pages**: Next.js pages, including the home and video call pages.
- **/components**: Reusable React components, like video call UI.
- **/server**: Backend server handling signaling (Socket.IO).
- **/public**: Static assets like icons or images.### WebRTC Flow
1. A user initiates or joins a call, and a signaling connection is established via **Socket.IO**.
2. **WebRTC** handles the exchange of media streams (audio/video) directly between peers.
3. **ICE Candidates** and **SDP** (Session Description Protocol) are used to negotiate the connection and media formats.### Signaling Server (Socket.IO)
The signaling server facilitates the initial connection between peers using Socket.IO. You can start the server by running:
```bash
node server.js
```### Deployment
You can deploy StreamTalk on platforms like **Vercel** (for Next.js apps) and use a backend for the signaling server (e.g.Render).
1. Deploy the Next.js app on **Vercel**.
2. Deploy the signaling server (e.g., Node.js with Socket.IO) separately on any Node-compatible platform.## Contributing
Feel free to contribute to StreamTalk by submitting pull requests or issues. Your feedback and improvements are welcome!
## License
This project is licensed under the **MIT License**.