A real-time video conferencing application built with WebRTC, MediaSoup, and Next.js that supports multi-party video calls and HLS streaming.
- Real-time video/audio streaming using WebRTC
- Multi-party video conferencing
- Camera and microphone controls
- TypeScript support
- HLS (HTTP Live Streaming) support for broadcast viewing
├── client/ # Next.js frontend application
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── lib/ # Utility functions and hooks
│ └── public/ # Static assets
└── server/ # MediaSoup server
└── src/ # Server source code
- Node.js 18+
- npm or yarn
- FFmpeg (for HLS streaming)
- Navigate to the server directory:
cd server- Install dependencies:
npm install- Start the development server:
npm run devThe server will run on port 8080.
- Navigate to the client directory:
cd client- Install dependencies:
npm install- Start the development server:
npm run devThe client will run on port 3000.
-
/stream- Video conferencing interface -
/watch- HLS stream viewer
- Next.js 15
- React 19
- MediaSoup Client
- Socket.IO Client
- HLS.js
- Tailwind CSS
- TypeScript
- Node.js
- Express
- MediaSoup
- Socket.IO
- FFmpeg
- WebRTC handling using MediaSoup
- Socket.IO for real-time communication
- HLS transcoding using FFmpeg
- React components for video/audio controls
- MediaSoup client integration
- Custom hooks for media handling
- Responsive UI with Tailwind CSS
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request