Lag and packet loss are typical problems when organizing online broadcasts. We build webinar platforms that solve these at the architecture level: from media server selection to CDN streaming. With over 5 years of experience in video platform development and more than 20 successful projects, we guarantee stable streams for audiences ranging from dozens to tens of thousands of participants. If you've experienced lags during webinars or quality degradation when scaling, our architecture eliminates that. We work out CDN topologies, configure HLS segmentation, and optimize WebRTC for minimal latency.
How we build video architecture
P2P (WebRTC without a server) is only suitable for video calls with 3-4 participants. With more, the client load grows exponentially.
SFU (Selective Forwarding Unit) — the media server forwards streams between participants without transcoding. Each participant sends one stream and receives streams from others. Scales to 50-200 participants with latency under 1 second.
MCU (Multipoint Control Unit) — mixes all streams into one. Client load is minimal, suitable for thousands of viewers, but server load is higher.
CDN streaming (HLS/DASH) — the host streams via RTMP, the media server transcodes to HLS, CDN distributes to viewers. Latency 5-30 seconds, unlimited scale.
For webinar format (1 host + thousands of viewers), we use SFU + CDN streaming for scale-out.
| Technology | Latency | Max participants | Client load |
|---|---|---|---|
| P2P | < 100 ms | 3-4 | High |
| SFU | < 1 s | 50-200 | Low |
| MCU | < 500 ms | Thousands | Minimal |
| CDN | 5-30 s | Unlimited | Minimal |
What is SFU and why do you need it?
SFU is a server that receives video streams from participants and forwards them to others without transcoding. This reduces client and server load while maintaining low latency. For webinars, SFU enables up to 200 participants with full interactivity.
Media servers
LiveKit — open-source SFU in Go, actively developed. SDKs for React, Vue, iOS, Android. Supports ingress (RTMP, HLS input). Hosting: self-hosted or LiveKit Cloud. LiveKit is a proven solution.
import { Room, RoomEvent } from 'livekit-client'; const room = new Room(); await room.connect('wss://yourinstance.livekit.cloud', token); await room.localParticipant.enableCameraAndMicrophone(); Mediasoup — lower-level SFU library for Node.js, requires more development but maximum flexibility. Agora, Daily.co, Vonage — managed services, pay per minute, fast integration, less control.
Comparison of SFU solutions
| Parameter | LiveKit | Mediasoup | Agora |
|---|---|---|---|
| Implementation complexity | Medium | High | Low |
| Cost | Free (self-hosted) | Free | Per-minute |
| Flexibility | High | Maximum | Low |
Webinar lifecycle
Creation → Configuration → Promo page → Participant registration → Email reminders → Stream start → Interactive (chat, Q&A, polls) → Completion → Recording processing → Recording distribution → Analytics
Registration and participant management
Webinar landing page: topic, date/time with timezone, speakers, agenda, registration form. After registration — confirmation email with unique token login link.
Reminders: 24 hours, 1 hour, 15 minutes before. Integration with Google Calendar / Outlook via .ics file.
Host tools
- Screen sharing — via WebRTC
getDisplayMedia() - Whiteboard — collaborative board (Excalidraw-compatible component)
- Slides — presentation via
iframeor PDF viewer - Hand raise — question signal
- Spotlight — highlight a participant (bring on stage from viewers)
- Breakout rooms — split into rooms for workshops
Recording and processing
After the webinar, recording is processed:
- Media server outputs raw recording (MP4 or WebM)
- FFmpeg transcodes to optimal format with multiple resolutions
- Uploaded to Cloudflare Stream or Mux
- Distributed to attendees (and non-registrants if needed)
Webinar analytics
- Peak concurrent attendance
- Retention: when participants left (% remaining at each moment)
- Engagement: chat activity, poll responses
- Conversion: registrations → attendees → completed view
What's included in the work
- Architectural solution diagram
- Server and client code
- REST API documentation
- Infrastructure setup (Docker, Nginx, CDN)
- Client team training
- 6-month warranty
Timelines
MVP (landing, registration, webinar room with chat, recording, email distribution): 3-4 months. Full platform with multiple speakers, breakout rooms, analytics, CRM integration: 5-8 months.
Order a consultation for your project — we'll assess tasks and propose an architecture. Contact us to discuss details and get an individual development plan.







