๐ฆ mediasoup-nest-backend
A backend WebRTC signaling server using NestJS, Socket.IO, and mediasoup.
๐ Git Clone
git clone https://github.com/amal-suresh/mediasoup-NestJS-backend.git
cd mediasoup-nest-backend๐ ๏ธ Install Dependencies
npm install๐งฑ Required System Dependencies (for mediasoup)
Install these on your system (for Ubuntu/Debian):
sudo apt update
sudo apt install -y \
build-essential \
python3 \
libssl-dev \
libsrtp2-dev \
libopus-dev \
libvpx-dev \
libwebrtc-audio-processing-dev \
libusrsctp-devFor macOS, use brew:
brew install libsrtp opus libvpx๐ Start the Server
npm run start:devThe WebSocket server will run at:
ws://localhost:3000/mediasoup
๐ Project Structure
src/
โโโ app.module.ts
โโโ mediasoup/
โ โโโ mediasoup.gateway.ts โ WebSocket logic
โ โโโ mediasoup.service.ts โ Core mediasoup logic
โ โโโ mediasoup.module.ts
๐ WebSocket Events
| Event Name | Description |
|---|---|
getRouterRtpCapabilities |
Request RTP Capabilities from server |
routerRtpCapabilities |
Response with capabilities |
You can add more events like:
createSendTransportconnectTransportproduceconsume
๐ก Client Socket Example
const socket = io('http://localhost:3000/mediasoup');
socket.emit('getRouterRtpCapabilities');
socket.on('routerRtpCapabilities', (caps) => {
console.log('RTP Capabilities', caps);
});๐งช Test
You can use any WebRTC client (React, plain JS) to test with mediasoup-client.
๐ License
MIT