GitHunt
KO

kolen44/SDK-Mediasoup

๐Ÿ“ฆ 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-dev

For macOS, use brew:

brew install libsrtp opus libvpx

๐Ÿš€ Start the Server

npm run start:dev

The 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:

  • createSendTransport
  • connectTransport
  • produce
  • consume

๐Ÿ’ก 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

kolen44/SDK-Mediasoup | GitHunt