Hello MediaSoup Community!
We’re a small mission driven startup in the behavior health space (teleo.space) and are facing challenges as we scale our WebRTC architecture. After exploring options, we are considering MediaSoup to address these issues and would be deeply appreciative of your insights.
Our in-house solution uses Node.js with node-webrtc
for WebRTC and gstreamer-superficial
for GStreamer integration. The system is peer-to-peer:
- One peer is a Debian container which:
- Shares its screen from a GStreamer pipeline using
ximagesrc
pulsesrc
appsink
- Receives events via data channel for remote control
- Shares its screen from a GStreamer pipeline using
- Additional peers are instantiated per user’s browser and each:
- Sends video and audio
- Sends and receives events via data channel
The 2 main challenges are:
node-webrtc
’sRTCVideoSource
only accepts raw video frames. Processing and sending frames for multiple peers is CPU-intensive, limiting us to 3 browser peers plus the container per session before performance degrades.- As we scale the number of peers, the peer to peer architecture will be resource intensive for each peer (CPU and network bandwith).
We’ve implemented the perfect negotiation pattern and minimized costs using peer-to-peer data flow, with a TURN service as fallback.
We aim to support up to 14 participants per meeting without excessive infrastructure costs and without exceeding user’s CPU and network limits. To achieve this, we’re considering hosting a SFU like MediaSoup.
Option A - Deploying one MediaSoup instance per Debian container (per meeting). (The Debian container could connect to the SFU as a WebRTC peer or via GStreamer using PlainTransport)
Option B - A centralized MediaSoup instance for multiple meetings.
We’d love your feedback on the following:
- Do you recommend Option A or Option B? Why?
- What should we watch for when transitioning to an SFU architecture?
- Are there better open source solutions for our use case?
- Given AWS’s network outbound charges, would hosting MediaSoup in-house be more costly than using other cloud-based video solutions (ie: Zoom SDK, agora. io, etc.)?
Thank you in advance for your help!
If you’re interested in providing ongoing support and/or consulting, please checkout our post in “Job Opportunities”
Best,
Murilo Cruz
Founding Engineer at Teleo
Contact us at engineering@teleo.space or schedule any time here.