Try it free

← BlogEngineering9 min read

How to size a self-hosted streaming server: cores, memory and bandwidth

"How big a server do I need?" has two separate answers. Processor and memory are set by how many streams you convert. Bandwidth is set by how many people watch. Mixing the two up is the most common sizing mistake.

Where the processor goes

Receiving a stream and passing it on unchanged is cheap: the server copies packets from one socket to another. The expensive part is transcoding, producing extra qualities so a viewer on a weak connection still gets a picture. Each extra quality means decoding the source, scaling it and encoding it again, live, without falling behind.

Passthrough versus a transcoding ladder A 1080p source is passed through to viewers at almost no processor cost. To add 720p and 480p qualities, the server decodes the source once, then scales and encodes each extra quality, and the encoders are where nearly all processor time goes. 1080p in 6 Mbps 1080p · copy decode scale scale encode encode 720p 480p passthrough: ~free most of the processor time
Adding qualities multiplies work per stream; adding viewers does not touch this part at all.

So the processor question is: how many streams, times how many extra qualities, at what resolution and frame rate? Encoding cost rises roughly with pixels per second, so a 1080p60 rendition costs about twice a 1080p30 one, and 720p30 a bit under half of 1080p30. The encoder preset matters as much as resolution: faster presets trade compression for processor time.

Exact figures depend on the processor generation and settings, which is why any honest sizing tool should tell you whether its numbers were measured on hardware like yours. Leave 30–40% headroom: an encoder that touches 100% falls behind, and live video cannot catch up later.

Bandwidth: the viewers' half

Outgoing bandwidth is plain multiplication:

egress = concurrent viewers × bitrate they watch

A modest event shows how quickly it grows. Five hundred people watching at 1080p and 5 Mbps need 2.5 Gbps; the same audience on 720p at 3 Mbps needs 1.5 Gbps.

Outgoing bandwidth by audience size Egress in gigabits per second for 50, 100, 250, 500 and 1000 concurrent viewers. At 3 megabits per second: 0.15, 0.3, 0.75, 1.5 and 3. At 5 megabits per second: 0.25, 0.5, 1.25, 2.5 and 5. A dashed line marks a 1 gigabit per second port. 0 1 2 3 4 Gbps 1 Gbps port 0.15 0.25 0.3 0.5 0.75 1.25 1.5 2.5 3 5 50 100 250 500 1,000 concurrent viewers 3 Mbps (720p) 5 Mbps (1080p)
Past a few hundred viewers, the network port, not the processor, is usually the first limit. Plan for your peak, not your average.

Three ways to bring that number down:

Memory and disk

Memory is rarely the bottleneck for live video: each converted stream needs a few hundred megabytes for decoder and encoder buffers, and passthrough streams need far less. Plan 8 GB as a floor, 16 GB for a few dozen converted streams.

Disk, on the other hand, grows forever if you record. That is arithmetic too:

GB per hour = bitrate in Mbps × 0.45
6 Mbps × 0.45 ≈ 2.7 GB per hour per stream

A 24/7 camera at 6 Mbps writes about 65 GB a day, close to 2 TB a month. Decide how long you keep recordings before you buy disks, or move old ones to object storage.

A worked example

Need Estimate
4 live streams, 1080p30, 720p + 480p added 8 extra encodes: measure one, multiply, add 30–40%
300 viewers at peak, mostly 720p (3 Mbps) ≈ 0.9 Gbps: a 1 Gbps port is too tight, take 2.5 or 10
Record all 4 streams, keep 30 days 4 × 2.7 GB × 24 × 30 ≈ 7.8 TB
Memory 16 GB

Measure before you buy

Every rule of thumb above is a starting point. The only number that settles it is a test on your own hardware: run your real streams with your real qualities, and watch processor use, dropped frames and the network port at your expected peak.

In creekX: the pricing calculator works out how many servers your channels need. Everyday care covers watching a running server.

Frequently asked questions

How much bandwidth does a live streaming server need?

Multiply concurrent viewers by the bitrate they watch. 100 viewers at 3 Mbps need about 300 Mbps of outgoing bandwidth; 1,000 viewers at 5 Mbps need about 5 Gbps.

How much CPU does live transcoding use?

It depends on resolution, frame rate, encoder preset and processor generation, so measure one encode on your hardware and multiply. Passing a stream through without transcoding uses almost no CPU.

How much disk space does recording take?

About 0.45 GB per hour for each Mbps of bitrate: a 6 Mbps stream writes roughly 2.7 GB an hour, or 65 GB a day.