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.
Tech Stack
5
Modules
8
Technologies
6
Highlights
Applications in This Project.
This project is built as 3 interconnected applications, each with a distinct responsibility.
video-meeting
Node.js 18 / ExpressP2P WebRTC conferencing (MiroTalk base)
videocall-mediasoup
Node.js / MediasoupSFU multi-party video server (private)
gstreams
GStreamer / Node.jsMedia pipeline scripts
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
How It's Built.
Backend / API
Services & Infra
Under the Hood.
Every module shipped in Video Meeting Platform — what it does and the features it covers.
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
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
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
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
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
The Interesting Parts.
Key architectural decisions, patterns, and technical details worth knowing.
Dual mode architecture: pure P2P WebRTC for 1:1 calls (zero media server latency) + Mediasoup SFU for groups
Mediasoup SFU routes media through a central server enabling group calls that scale beyond browser P2P mesh limits
JWT-based room tokens with configurable expiry prevent unauthorized users from joining active sessions
FFmpeg + fluent-ffmpeg for media transcoding — supports recording, playback, and format conversion
Nodemailer sends meeting invitation emails with room link and access token directly from the server
Built on MiroTalk P2P open-source base, heavily customised and extended for TecSolPro requirements
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.