Real-Time Communication
Live System

Video Meeting Platform

The video meeting system is a standalone Node.js application built on top of MiroTalk, customized and extended for the TecSolPro ecosystem. For 1:1 calls it uses standard WebRTC P2P with Socket.io for signaling — no media server needed, so latency is minimal. For multi-party sessions (5+ participants), we built a separate Mediasoup SFU variant in the private folder that routes media through a central server, enabling group calls that scale beyond browser P2P limits. FFmpeg and fluent-ffmpeg handle media transcoding. JWT-based room tokens prevent unauthorized users from joining sessions. Nodemailer sends meeting invitation emails.

The Result

A flexible video communication layer supporting both lightweight P2P calls and scalable multi-party sessions within the TecSolPro platform ecosystem.

Build Something Similar
Vi

Tech Stack

Node.js 18Express.jsSocket.ioWebRTCMediasoupFFmpegJWTNodemailer

5

Modules

8

Technologies

6

Highlights

Project Ecosystem

Applications in This Project.

This project is built as 3 interconnected applications, each with a distinct responsibility.

App 01

video-meeting

Node.js 18 / Express

P2P WebRTC conferencing (MiroTalk base)

App 02

videocall-mediasoup

Node.js / Mediasoup

SFU multi-party video server (private)

App 03

gstreams

GStreamer / Node.js

Media pipeline scripts

Key Features

What It Does.

P2P WebRTC for 1:1 calls with Socket.io signaling

Mediasoup SFU for scalable multi-party video

JWT room tokens for secure session access

Technology Stack

How It's Built.

Backend / API

Node.js 18Express.jsJWT

Services & Infra

Socket.ioWebRTCMediasoupFFmpegNodemailer
Platform Modules

Under the Hood.

Every module shipped in Video Meeting Platform — what it does and the features it covers.

Module 01

P2P Video Calls

Browser-to-browser WebRTC with ICE/STUN negotiation, Socket.io signaling, camera switching, and mute.

What's Included

  • RTCPeerConnection setup
  • getUserMedia (camera/mic)
  • ICE/STUN candidate exchange
  • Camera & mic toggle
  • Socket.io 4.x signaling server
  • Join/leave room events
Module 02

Screen Sharing

Share entire screen or specific application window with live stream injection into active session.

What's Included

  • getDisplayMedia screen capture
  • Application window selection
  • Live stream injection into call
  • Stop sharing controls
Module 03

SFU Multi-Party (Mediasoup)

Mediasoup SFU routes media server-side enabling scalable group calls beyond P2P mesh limits.

What's Included

  • Mediasoup SFU media server
  • Producer/consumer transport architecture
  • WebRTC-over-SFU routing
  • Multi-participant group calls
  • Bandwidth optimisation vs full mesh P2P
Module 04

Room Management

JWT-secured room tokens with expiry, room creation, and Nodemailer invitation emails.

What's Included

  • JWT room token generation
  • Token expiry configuration
  • Room creation & destruction
  • Nodemailer invitation emails with room link
  • dotenv-based config
Module 05

Media Processing

FFmpeg + fluent-ffmpeg for recording, transcoding, and playback of session media.

What's Included

  • FFmpeg media transcoding
  • fluent-ffmpeg Node.js wrapper
  • Session recording
  • Playback format conversion
  • Let's Encrypt SSL via Nginx
Technical Highlights

The Interesting Parts.

Key architectural decisions, patterns, and technical details worth knowing.

01

Dual mode architecture: pure P2P WebRTC for 1:1 calls (zero media server latency) + Mediasoup SFU for groups

02

Mediasoup SFU routes media through a central server enabling group calls that scale beyond browser P2P mesh limits

03

JWT-based room tokens with configurable expiry prevent unauthorized users from joining active sessions

04

FFmpeg + fluent-ffmpeg for media transcoding — supports recording, playback, and format conversion

05

Nodemailer sends meeting invitation emails with room link and access token directly from the server

06

Built on MiroTalk P2P open-source base, heavily customised and extended for TecSolPro requirements

Battle-Tested in Production

Want Something Like This?

We've built systems like this before — we know the pitfalls, the patterns that work, and how to scope it correctly from day one.