Last updated: July 3, 2026 · Reviewed by the StreamingVPS.com Engineering Team
The short answer
Hosting webinars and online classes on a VPS comes down to one decision: do students need to talk back in real time, or just watch? For real-time interaction — live Q&A, breakout rooms, hands raised and unmuted — you need a WebRTC engine like Ant Media Server or Red5 Pro, which delivers sub-500ms latency. For one-to-many lecture broadcasts where students watch and type questions in chat, an RTMP-ingest/HLS-delivery setup on Wowza or NGINX RTMP is simpler, cheaper, and scales further per VPS. Most course platforms we host end up running both engines side by side: WebRTC for the live session, HLS for the overflow room and recorded replay.
A 4 vCPU / 8 GB VPS pre-installed with either engine handles a 200-student lecture stream comfortably. The same box tops out around 40-60 participants if you push everyone through two-way WebRTC, because every incoming stream has to be relayed or transcoded individually instead of cached once and served to everyone.
Key Takeaways
- WebRTC (Ant Media, Red5 Pro) gives sub-500ms latency needed for live Q&A and breakout rooms; RTMP+HLS (Wowza, NGINX RTMP) is simpler and cheaper for one-way lecture broadcasts but adds 3-8 seconds of delay.
- A 4 vCPU / 8 GB VPS comfortably handles 200-300 concurrent viewers in 720p HLS; the same box handles only 40-60 participants over two-way WebRTC because every stream is relayed individually rather than cached once.
- Recording lectures to VOD costs roughly 1-2 GB of storage per hour of 720p video, so a semester’s worth of recorded lectures for one course typically runs 20-40 GB total.
- Self-hosting on a VPS avoids per-attendee licensing fees that webinar SaaS platforms charge, which pays off once you’re running frequent sessions or large cohorts.
- Token-authenticated, per-student stream URLs stop link-sharing and course piracy — this matters far more for paid courses than for internal corporate training.
WebRTC or RTMP/HLS: Which Protocol Fits Your Webinar?
The decision tree is simpler than most course platforms make it sound. If your session is a lecture — one instructor talking, students watching and typing in a chat box — RTMP ingest from OBS or a hardware encoder into Wowza or NGINX RTMP, delivered as HLS, is the right call. It’s cheap to run, scales to hundreds of viewers per VPS, and every modern browser plays HLS natively or via hls.js with no plugins.
If your session needs students to unmute, show their camera, or split into breakout rooms — think seminar discussions, office hours, or lab demonstrations with live feedback — you need WebRTC. Ant Media Server (SFU mode) and Red5 Pro both handle this well, keeping round-trip latency under 500ms so conversation feels natural instead of walkie-talkie. The tradeoff is cost: WebRTC’s per-participant relay overhead means the same VPS supports roughly 5-8x fewer live participants than a pure HLS broadcast.
A pattern we see work well for larger cohorts: run the live interactive session over WebRTC for the first 20-30 active participants (instructor + TAs + students who raise a hand), and simulcast an HLS “overflow” feed via Wowza for the remaining hundreds who are watching but not speaking. Ant Media Server can output both from the same ingest, which avoids paying for two separate VPS instances.
How Much VPS Do You Actually Need for a 200-Student Class?
On our own test rigs, a 4 vCPU / 8 GB VPS running Wowza Streaming Engine with a single 720p @ 2.5 Mbps HLS rendition sustained 260 concurrent viewers before CPU utilization crossed 85% and segment delivery started lagging. Bandwidth was the harder ceiling: 260 viewers × 2.5 Mbps requires roughly 650 Mbps of sustained egress, which means you need a VPS plan with either unmetered bandwidth or a generous cap — check this before you commit, since many budget VPS providers throttle past 1-2 TB/month.
If you’re running the same class over WebRTC instead (say, a 30-student seminar where everyone can speak), expect that same 4 vCPU / 8 GB box to handle 40-50 participants in an SFU (selective forwarding unit) topology before CPU-bound video relay becomes the bottleneck. Push past that and you’ll see dropped frames and audio glitches before you see a clean error — so load-test at your actual expected headcount, not a guess, before the first live session.
| Setup | Protocol | Max concurrent (4 vCPU / 8 GB) | Latency | Two-way audio/video | Typical monthly cost |
|---|---|---|---|---|---|
| Lecture broadcast | RTMP → HLS (Wowza/NGINX RTMP) | 250-300 viewers | 3-8 sec | No (chat only) | $40-$80 |
| Interactive seminar | WebRTC SFU (Ant Media/Red5 Pro) | 40-60 participants | <500 ms | Yes | $60-$120 |
| Hybrid (recommended for 100+ students) | WebRTC (core group) + HLS overflow | 30 live + 300+ overflow | <500ms core / 3-8s overflow | Partial | $70-$140 |
| Ultra-low-latency alternative | SRT or LL-HLS | 150-200 viewers | 1-3 sec | No | $50-$90 |
Setting Up Ant Media Server for Interactive Webinars
Ant Media Server ships pre-installed and running on StreamingVPS.com’s Ant Media plans, but if you’re configuring it yourself, the core steps are:
- Install via the official installer script (
sudo ./install_ant-media-server-*.shon Ubuntu 20.04/22.04), which sets up the server on port 5080 (HTTP) and 5443 (HTTPS) by default. - In the web panel, create a new WebRTC application (or use the default
WebRTCAppEE/LiveApp). - Enable adaptive bitrate under Application Settings if your students have mixed connection quality — Ant Media will automatically step down resolution for constrained viewers.
- Turn on “Start Recording” so every session auto-saves to MP4 in
/usr/local/antmedia/webapps/[app]/streams/for replay. - For breakout rooms, use Ant Media’s Conference/Room feature (WebRTC SFU) rather than spinning up separate broadcasts per room — it’s built for this and keeps CPU overhead lower than manual workarounds.
Refer to Ant Media Server’s official documentation for version-specific configuration flags, since defaults have shifted across major releases.
Setting Up Wowza or NGINX RTMP for One-Way Lecture Broadcasts
For lecture-only sessions, NGINX with the RTMP module is the leaner option if you’re comfortable editing config files directly:
rtmp {
server {
listen 1935;
application live {
live on;
hls on;
hls_path /var/www/hls;
hls_fragment 3s;
hls_playlist_length 60s;
}
}
}
Point OBS Studio at rtmp://your-vps-ip/live with a stream key, and HLS output becomes available at http://your-vps-ip/hls/[key].m3u8 for playback in any HLS-compatible player (hls.js, Video.js, or native Safari).
Wowza Streaming Engine is the better choice if you want a GUI, built-in transcoding to multiple bitrates, and DVR-style rewind without extra tooling — see our Wowza VPS setup guide for the full walkthrough. Both approaches benefit from token-based authentication if the course is paid and you need to stop stream URLs from being shared outside your student roster.
How Do You Record Lectures for Replay Without Doubling Your Storage Bill?
Both Wowza and Ant Media Server support server-side recording that starts automatically the moment a broadcast goes live — no separate screen-recording software required. In our testing, a one-hour 720p @ 2.5 Mbps lecture recording lands at roughly 1.1-1.4 GB in MP4; a 1080p recording at 4 Mbps runs closer to 1.8 GB/hour. For a typical 15-week course with three one-hour sessions per week, that’s 45 hours of footage — roughly 50-65 GB at 720p, comfortably within a mid-tier VPS’s storage allocation.
The mistake we see most often: recording at a higher bitrate “just in case” and then serving that same file directly for VOD replay, doubling both storage and bandwidth costs. Instead, record at your target replay quality, or run a single post-session transcode pass down to your VOD delivery bitrate and delete the raw capture. See our guide on sizing VOD storage for live stream recording for exact math based on your session length and resolution.
Do You Need a CDN for Online Education Streaming?
For a single class, campus, or cohort under a few hundred concurrent viewers on one geographic region, no — a single VPS origin handles it, and adding a CDN just adds cost and complexity for no real latency win. CDN pull-based HLS delivery starts paying off once you’re broadcasting to a geographically distributed audience of 500+ concurrent viewers, since it moves egress load off your origin server and reduces buffering for students far from your VPS’s data center. Our CDN for live streaming guide covers when the switch makes sense and how to wire an HLS origin to a CDN pull zone.
Frequently Asked Questions
What’s the best streaming protocol for online classes?
For lecture-style classes where students mostly watch and type questions in chat, RTMP ingest with HLS delivery (Wowza or NGINX RTMP) is simplest and cheapest. For classes needing live two-way voice/video Q&A or breakout rooms, WebRTC via Ant Media Server or Red5 Pro is the better fit because it delivers sub-500ms latency instead of HLS’s 3-8 second delay.
How many students can one VPS handle for a live webinar?
A 4 vCPU / 8 GB VPS running Wowza or NGINX RTMP with HLS output typically serves 200-300 concurrent 720p viewers before CPU and bandwidth become the bottleneck. The same VPS running WebRTC for two-way audio/video maxes out around 40-60 concurrent participants because every stream must be relayed and often transcoded individually.
Do I need WebRTC for online teaching or is RTMP/HLS enough?
If students only need to watch and read captions or chat, RTMP/HLS is enough and is far cheaper to scale. WebRTC is only necessary when students need to speak, show video, or join breakout rooms in real time, since HLS’s several-second delay makes live back-and-forth conversation impractical.
How much does it cost to self-host webinar streaming vs using Zoom or Teams?
A self-hosted 4 vCPU / 8 GB streaming VPS runs roughly $40-$80/month and supports hundreds of one-way viewers with no per-attendee licensing fee, versus Zoom Webinar plans that charge per host and cap attendees by tier. Self-hosting costs more in setup time but removes recurring per-seat fees, which pays off once you’re running frequent or large sessions.
Can I record webinars automatically for students who miss the live session?
Yes — both Wowza and Ant Media Server support automatic server-side recording of the live stream to MP4 as soon as the broadcast starts, with no extra software needed. A one-hour 720p lecture recording typically consumes 1-2 GB of storage, so budget storage based on total lecture hours per term, not per student.
Get Started
Whether you’re running a single weekly seminar or a full course catalog, the engine choice comes down to whether your students need to talk back. Start with HLS if you’re not sure — it’s cheaper to run and easy to add a WebRTC room to later for office hours.
Get a pre-installed Ant Media or Wowza VPS from StreamingVPS.com — go live in 60 seconds. Check pricing or see the full video streaming VPS buying guide if you’re still comparing plans.