Building a streaming server that survives real load requires more than installing Nginx-RTMP on a cloud VPS. This guide covers the architectural decisions that separate a hobby setup from infrastructure capable of handling thousands of concurrent viewers without rebuffering.
1. Hardware Foundation: Why Bare Metal Matters
The biggest mistake operators make is starting with virtualized compute. Hypervisor overhead introduces unpredictable I/O jitter — acceptable for web apps, fatal for live streaming where a 200ms packet delay causes viewer-side rebuffering.
Dedicated bare metal gives you:
- Deterministic NIC access — no virtio layer, kernel sends packets directly to hardware
- Full CPU affinity — pin encoder processes to specific cores with no host-OS interference
- Non-shared network ports — guaranteed throughput, not "up to X Gbps" shared with neighbors
Minimum spec for 1,000 concurrent 1080p viewers: 8-core CPU (Xeon E or Ryzen Pro), 32GB RAM, 10Gbps dedicated NIC, NVMe storage for VOD segments.
2. Network: 10Gbps Unshared Port Is the Baseline
A single 1080p HLS stream at adaptive bitrate peaks around 8–12 Mbps. At 1,000 concurrent viewers, that's 8–12 Gbps of egress. A shared 1Gbps port is a hard ceiling; you need a dedicated 10Gbps or higher port.
Port types to insist on:
| Port Type | Usable for Streaming | Notes |
|---|---|---|
| Shared 1Gbps | No | Burst bandwidth, no SLA on sustained throughput |
| Dedicated 1Gbps | Small scale only | Hard cap ~800 Mbps usable |
| Dedicated 10Gbps | Yes | Baseline for production streaming |
| 10Gbps + IX peering | Preferred | Lower latency, reduced transit cost |
3. Software Stack Selection
The three dominant open-source stacks each have distinct trade-offs:
Nginx-RTMP + FFmpeg
Mature, battle-tested, and well-documented. Best for RTMP ingest → HLS/DASH transcode pipelines. Limitation: the nginx-rtmp module is largely unmaintained; use nginx-rtmp-module forks (e.g., Arut's) for bug fixes.
SRS (Simple Realtime Server)
Purpose-built for streaming. Supports RTMP, WebRTC, HLS, MPEG-DASH, and SRT ingest natively. Far lower CPU overhead than Nginx+FFmpeg for passthrough scenarios. Recommended for new deployments.
Wowza Streaming Engine
Commercial option with excellent support, adaptive bitrate transcoding built-in, and DRM integrations. Viable for enterprise deployments where support SLA matters more than per-unit cost.
For most IPTV and VOD deployments in 2025, SRS 6.x offers the best performance-per-CPU-cycle ratio. Run it in Docker with host network mode to avoid NAT overhead.
4. Origin-Edge Topology
A single origin server cannot serve global audiences at low latency. The standard pattern is a pull CDN or edge cascade:
- Origin server — receives encoder input (OBS, hardware encoder), transcodes to multiple bitrates, generates HLS/DASH manifests
- Edge servers — cache and serve HLS segments to end viewers, pull from origin on cache miss
- DNS GeoDNS — routes viewers to the nearest edge based on IP geolocation
For self-hosted deployments, OFFDEDI's multi-datacenter nodes across EU, NA, and APAC can be configured as edge relay points pulling from your origin.
5. Storage Architecture for VOD
Live streaming has modest storage needs (rolling segment window). VOD is different — a 1080p 2-hour film at 8 Mbps needs ~7GB. At scale, object storage (S3-compatible) is the answer.
Recommended pattern: transcode → upload segments to MinIO/S3 → serve via edge CDN with a 30-day TTL. Keep origin disk for working segments only (last 60 seconds of live stream).
6. Failover and Redundancy
Production streaming requires N+1 redundancy at every layer. Critical failure points:
- Origin failure — deploy a hot standby origin with RTMP re-streaming from the encoder
- NIC failure — bond two NICs in active-passive mode (LACP)
- BGP session drops — use a hosting provider with multi-homed BGP (at least 2 upstream transit providers)
- Transcode crash — supervisor processes (systemd with Restart=always) for all streaming daemons
Regularly test your failover. Schedule a monthly drill: kill the primary origin process and verify edge servers automatically fall back to the standby within your acceptable RTO.
Ready to Deploy?
OFFDEDI provides bare metal streaming servers pre-configured with SRS, FFmpeg, and 10Gbps dedicated ports. Our engineers handle RTMP ingest setup, adaptive bitrate configuration, and edge relay provisioning as part of the onboarding process.
Contact our team to discuss your streaming infrastructure requirements.