Video platform server cost estimation guide calculating infrastructure expenses for 2025

Key takeaways

Egress dominates the bill. For almost every video platform, outbound traffic is 70–95% of monthly server cost — pick the CDN / cloud first, then everything else.

A clean cost model has four lines. Egress, storage, compute (origin + transcoder + signalling), and third-party (CDN, DRM, analytics). If your estimate has more than four categories, you’re double-counting.

AWS is the most flexible, not the cheapest. CloudFront egress at ~$0.085/GB at the first tier vs Bunny at ~$0.01/GB, Hetzner with unlimited dedicated 1 Gbit egress, and DigitalOcean at $0.01/GB after a 500 GB free pool per Droplet.

Architecture choices move cost more than provider choices. Adaptive bitrate, H.265/AV1 over H.264, P2P for 1:1, SFU not MCU, and aggressive CDN TTLs routinely cut total bills by 40–70%.

Model per-user-hour cost, not monthly totals. Whether you charge per seat, per class or per lesson, the unit economics live on cost-per-active-user-hour — that’s the number investors and CFOs care about.

Founders and CTOs routinely get blindsided by their first real video bill. A free tier hides the real cost, then the product launches, the egress meter spins, and 90 days later there’s a $50,000 surprise on the AWS invoice. This guide turns “how much will my video platform cost to run” from a guess into a simple model you can put in a spreadsheet. It covers the four cost lines that actually exist, 2026 pricing from every provider we use in production, three worked examples (9-person conference, webinar, VOD catalogue), and the architecture levers that usually matter more than the cloud choice.

Target audience: founders, CTOs, product leads and engineering managers scoping a video product, pricing it, or trying to get an existing bill under control. Every number below is conservative and either tied to a public price list or to a deployment we have shipped. When numbers move fast, we price the discovery sprint first and let real measurements replace estimates.

Why Fora Soft wrote this playbook

Fora Soft has spent 21 years building real-time video, streaming and AI products — 625+ delivered, with heavy concentration in video conferencing, live streaming and VOD. We run production workloads on AWS, GCP, Azure, Hetzner, DigitalOcean, Bunny and Cloudflare, across WebRTC, HLS, CMAF and custom SFU stacks. We built BrainCert, a million-learner WebRTC classroom at $10M ARR; Worldcast Live, HD live concert streaming to 10,000+ concurrent viewers; and dozens of other video products where the infra bill had to be predictable to within ~10% before launch.

This playbook is the simplified spreadsheet we hand to clients during a first scoping call: the four cost lines, the 2026 price ranges that actually matter, the architecture decisions that move them, and three worked examples. If you want us to tailor it to your specific product, book a call at the end — with our Agent Engineering workflow, the model comes back fast, the numbers are conservative, and we’ll tell you honestly where building in-house beats buying managed.

Need a real server-cost model for your video product?

Share your expected active users, concurrent streams and recording policy. In 30 minutes we’ll turn that into a monthly bill range, per-user-hour cost and the cheapest provider mix for your architecture.

Book a 30-min call → WhatsApp → Email us →

The four-line cost model every video platform shares

Every video platform bill — conference, webinar, VOD library, streaming OTT, live classroom, security VMS — decomposes into four cost lines. Master these four and you can model any video product in an afternoon.

Cost line What it is Typical share of bill Main lever to reduce
Egress / bandwidth Outbound traffic from servers / CDN to viewers 60–90% CDN choice, ABR, codec, P2P
Storage Recorded clips, VOD masters, transcoded renditions 2–10% Retention policy, cold tiers, codec
Compute Origin, SFU, transcoder, signalling, API, DB 5–20% Autoscale, spot, ARM, right-sizing
Third-party services CDN, DRM, transcode SaaS, analytics, observability 2–15% Volume commits, buy vs build

Rule of thumb: if your early model says storage or compute is the dominant cost, something is wrong. Either the product barely streams video, or you haven’t modelled egress honestly.

Line 1: Egress — the number that sinks startups

Inbound traffic is free almost everywhere. Outbound (egress) is where every big cloud earns its money. Start by pinning down two numbers for your product: GB per viewer-hour and concurrent streams in the peak hour.

Profile Codec Bitrate GB / viewer-hour
360p mobile H.264 ~0.8 Mbps ~0.36 GB
480p SD H.264 ~1.5 Mbps ~0.68 GB
720p HD H.264 ~3 Mbps ~1.35 GB
1080p FHD H.264 ~5 Mbps ~2.25 GB
1080p FHD, H.265 H.265 ~3.3 Mbps ~1.5 GB
4K H.265 / AV1 ~15 Mbps ~6.75 GB

Multiply GB/viewer-hour by total hours watched per month, by an ABR uplift factor (~1.2–1.3 to account for the lower rungs also being served), and you have monthly egress. Now pick a provider.

Provider Egress price / GB (2026) Notes
AWS CloudFront ~$0.085 (first 10 TB) → $0.06 (>50 TB) Enterprise SLA, signed URLs/cookies, volume commit
AWS S3 direct egress ~$0.09 per GB Avoid direct serving at scale — always put a CDN in front
Cloudflare (Pro/Business) Flat (effectively free egress bundled) Huge ToS headroom, R2 object-store pairs well
Bunny CDN $0.005–$0.03 tiered, $0.005 over 500 TB Lowest cost at scale, strong VOD support, global POPs
Fastly $0.12 base, $0.05 at committed volume Best edge compute (VCL), premium SLA
Hetzner (dedicated) Unlimited on 1 Gbit uplink; ~€1/TB over quota on 10 Gbit EU champion; bring-your-own CDN or pair with Bunny
DigitalOcean Droplet 500 GB / Droplet free, then ~$0.01 / GB Great predictability, Spaces for S3-compatible object storage
GCP / Azure CDN $0.08–$0.12 tiered Pick for colocation with Google or Microsoft stacks

For the cross-provider pros and cons, our AWS vs DigitalOcean vs Hetzner comparison goes deeper. And for the bigger “where does the egress go” picture, the edge computing playbook walks through POP selection and worker-level tricks.

Line 2: Storage — small bill, huge leverage

Most platforms end up spending 2–10% of their bill on storage, but the architectural choices here affect every other line. Good storage policy quietly shrinks egress (you’re storing fewer renditions), shrinks compute (fewer transcodes), and shrinks retention risk.

Typical file sizes. 1 hour of 720p H.264 is ~1.35 GB; 1080p H.265 is ~1.5 GB; 4K AV1 is ~4–5 GB; full ABR ladder (4–5 rungs) of an hour is ~5–7 GB. Merging per-participant recordings into a single composite cuts storage 30–50% on conference workloads.

Storage tier Price / GB-month (2026) When to use
AWS S3 Standard ~$0.023 Hot origin for VOD & live recordings
AWS S3 Infrequent Access ~$0.0125 Archived clips accessed < once / month
AWS S3 Glacier / Deep Archive $0.004 / $0.00099 Compliance retention, evidentiary clips
Cloudflare R2 $0.015 S3-compatible, zero egress fees to Cloudflare network
Bunny Storage $0.005–$0.015 Pairs with Bunny CDN; cheapest end-to-end
Hetzner Object Storage ~$5.99 base (~1 TB bundle + 1 TB egress) Flat EU baseline, cheap overage
DigitalOcean Spaces $0.02 (after 250 GiB free) Predictable for small teams, S3-compatible

Retention policy is a cost lever. Default to 30–90 days on hot storage, archive to IA/Glacier after 90 days, delete at 365 days unless the use case (compliance, courtroom, regulated industry) says otherwise. Implementing S3 lifecycle rules, Object Lock and immutability is one of the cheapest CapEx line items that survives every audit.

Line 3: Compute — origin, SFU, transcoder, signalling

Video compute splits into four workloads. Size each independently; don’t try to solve them with one instance type.

Signalling and API. A couple of burstable EC2 t3/t4g instances (or 2–3 €5–€20 cx22/cpx21 at Hetzner, or DO $12–$24 Droplets) comfortably handle thousands of concurrent WebSocket clients. Stateless, horizontally scalable, typically under $100/month for sub-10k DAU products.

SFU / media server. LiveKit, mediasoup, Jitsi, Janus — CPU-heavy; 1 vCPU handles ~150–250 participant-legs at 480p depending on bitrate. A c5.4xlarge ($0.68/hr on AWS), 4-core Hetzner AX41 (~€39/month) or DO CPU-optimised droplet ($130/month for 8 vCPU) are the classic pick points. Our comparisons of SFU architecture live in the P2P vs SFU vs MCU breakdown.

Transcoding / packaging. Either batched (AWS MediaConvert at $0.0075/min, Mux free tier, FFmpeg on GPU) or live (MediaLive, LiveKit Egress, custom). Batched VOD almost always wins cheaper than DIY GPU unless you have sustained throughput. Hetzner dedicated servers with NVENC-capable GPUs become attractive above ~2,000 encode-hours/month.

Origin and application backend. Databases, app servers, worker queues, scheduling, auth. Standard $200–$2,000/month band for most products; scale up the moment you notice DB CPU crossing 60% or slow queries dragging p95.

For deeper server-sizing math see our scalable video streaming app playbook.

Line 4: Third-party services — CDN, DRM, analytics, TURN

CDN. Already covered under egress — Bunny and Cloudflare for cost, CloudFront for AWS native integration, Fastly for edge compute, Akamai for enterprise SLA.

DRM. Widevine / PlayReady license servers cost nothing from Google/Microsoft directly; third-party (EZDRM, PallyCon, Axinom, Irdeto) run $500–$3,000/month plus per-license fees.

TURN. WebRTC fallback when direct P2P fails — ~15–20% of sessions in enterprise networks. coturn on your own Hetzner box ($50/month) vs managed Xirsys / Twilio ($40 per 100 GB relayed) — self-host pays back quickly.

Analytics & QoE. Mux Data, Conviva, Bitmovin Analytics, or a Kafka + ClickHouse stack you run. Budget ~$0.002–$0.005 per viewer-session for managed analytics, effectively free at low scale with open-source.

Observability. Datadog, Honeycomb, Grafana Cloud, New Relic — $500–$2,000/month at mid-scale. Self-hosted Prometheus + Grafana + Loki starts free on a modest VM.

AWS bill climbing faster than your DAU?

We run cost audits on live video platforms and routinely cut bills 40–70% by re-architecting egress, storage and transcoding. Share your last three invoices and we’ll highlight the biggest levers.

Book a 30-min call → WhatsApp → Email us →

Architecture levers that move the bill more than the provider

1. Adaptive bitrate. 3–5 rung ABR ladder can cut average egress 20–30% vs serving everyone 1080p, because most viewers end up on 720p or 480p. Adopt HLS/DASH with ABR from day one.

2. Codec upgrade. H.265 over H.264 saves 25–50% bitrate for the same quality; AV1 another 20–30%. Encode costs go up; egress costs collapse. Almost always worth it past ~10 TB/month of VOD egress.

3. P2P where possible. 1:1 WebRTC calls relay via STUN when paths permit — ~80–85% of sessions avoid your TURN/SFU entirely. For 1:1 telemedicine or tutoring, P2P is effectively free on the server side.

4. SFU not MCU. SFU forwards streams without decoding, so compute scales much better; MCU mixes in the cloud which is CPU-expensive. For 3+ participants, SFU wins almost always.

5. CDN with long TTLs. VOD manifests and segments can cache for 24–48 hours with proper versioning; that deflects 90+% of requests from your origin. For live, manifest TTLs of 2–5 seconds, segment TTLs of a few seconds — still a huge egress cut.

6. Regional origins. Multi-region origins close to your user base cut inter-region egress and reduce first-frame latency. Especially important in APAC and LATAM.

7. Autoscaling + spot instances. Peak-hour scale-out with autoscaling groups plus spot/preemptible instances for batch transcoding cuts compute 40–60% vs always-on reserved capacity.

8. ARM / Graviton. ARM instances on AWS (Graviton), Ampere on Hetzner, or Tau on GCP run ~30–40% cheaper than x86 for identical throughput on modern video pipelines. Test and switch anywhere your stack supports it.

Worked example 1: 9-person SFU video conference

Scenario. 9 participants per meeting, 480p per upstream, SFU fan-out (each participant sees the other 8). Meetings run 4h/day × 30 days = 120 hours/month.

Egress math. 9 × 8 = 72 downstream legs. At 480p ~0.68 GB/hr each, total ~49 GB/hr. Over 120 hours, ~5.88 TB/month.

Approximate monthly cost. AWS CloudFront ~ $500 (egress) + $50 (app) + $40 (SFU usage) = ~$590. Hetzner dedicated (traffic free on 1 Gbit) ~ €40 per server + €40 SFU = ~€80–€100. DigitalOcean ~ $55 egress + $50 app + $70 SFU = ~$175. Recording storage (one composite 720p file, 1.35 GB/hr × 120 = 162 GB/month): ~$4–$10 depending on provider.

Worked example 2: 2-streamer, 50-viewer HLS webinar

Scenario. 2 speakers, 50 viewers watching HLS at 720p. 4h/day × 30 days.

Egress math. Each viewer pulls ~1.35 GB/hr × 50 viewers = 67.5 GB/hr. Over 120 hours, ~8.1 TB/month. Full ABR ladder closer to ~10 TB.

Approximate monthly cost. AWS CloudFront ~$850 egress + $90 compute = ~$940. Bunny CDN ~$100 egress + $50 origin = ~$150. Mux managed (under free tier for encoding, pay for delivery) ~$100–$200 depending on minutes.

Worked example 3: 10,000-student VOD catalogue

Scenario. E-learning VOD library, 10,000 MAU, 6 hours consumed/month each, 720p default with full ABR ladder. Monthly egress ~90 TB after ABR uplift.

Approximate monthly cost. AWS CloudFront ~$7,000–$7,500 egress. Bunny CDN ~$900–$1,300. Mux (at this scale, paid tier) ~$3,000–$5,000. Storage for a 1,000-hour catalogue at ABR full ladder: ~6 TB → $120–$140/month on S3 Standard, $30–$60 on Bunny/Cloudflare R2.

Per-student-hour cost. AWS: ~$0.12/hr. Bunny: ~$0.02/hr. That ~6× gap compounds into tens of thousands of dollars over a year. For the VOD-specific deep-dive, see our video streaming app development cost guide and how to implement video streaming in an e-learning app.

Build vs buy: when managed video services win

Managed video platforms (Mux, Cloudflare Stream, Bunny Stream, api.video, Vimeo OTT, Dacast, Kaltura) bundle encoding, storage, CDN and often analytics into a single contract. At low-to-mid scale they’re cheaper than DIY once you factor in engineering time; at high scale, a sharp DIY stack on Hetzner + Bunny wins by 2–5×.

Scale Usually cheapest Usually fastest
MVP (< 1 TB / mo) Mux free tier / Cloudflare Stream Mux / Cloudflare Stream
Growth (1–50 TB / mo) Bunny Stream / Cloudflare Stream Mux / Bunny Stream
Scale (50–500 TB / mo) Hetzner + Bunny DIY Bunny Stream
Enterprise (> 500 TB / mo) Negotiated CDN commit + custom origin Kaltura / JW Player enterprise

Five pitfalls that sink video-infrastructure budgets

1. Serving video from S3 directly. No CDN, no cache — every byte a viewer pulls bills at the raw S3 rate and scales linearly with DAU. This alone makes many early AWS bills 5–10× what they should be.

2. No ABR, single-bitrate streams. Everyone gets 1080p whether they need it or not. Mobile users suffer buffering, your bill balloons, and you still lose engagement.

3. Infinite retention. Recordings never archived or deleted. A year in you’re storing 10 TB of footage no one has watched since week 1.

4. Always-on reserved capacity. SFU and transcoder nodes running 24/7 at peak capacity. Move to autoscaling + spot and you pay for what you actually use.

5. No unit economics. Monitoring monthly totals but not cost-per-user-hour. You don’t know whether growth helps or hurts until the cash runway becomes the concern. Instrument per-user cost from day one.

A decision framework — pick your stack in five questions

Q1. How much monthly egress in year 2? < 1 TB → Mux or Cloudflare Stream (free tier covers you). 1–50 TB → Bunny Stream or Cloudflare Stream. 50+ TB → DIY Hetzner + Bunny, or negotiated CloudFront commit.

Q2. What’s the interactive pattern? 1:1 → P2P WebRTC minimises server cost. Many-to-many small rooms → SFU. Large “stadium” broadcasts → HLS/LL-HLS with CDN.

Q3. Region and compliance? EU with data residency rules → Hetzner + Bunny or OVH. US-first → AWS / Cloudflare. APAC-heavy → GCP or Cloudflare with regional POPs. Courtroom / medical / defence → on-prem or dedicated cloud with signed audits.

Q4. Team shape. No dedicated DevOps → Mux or Cloudflare Stream. Full ops team → DIY with a cost audit every quarter. Somewhere between → Bunny Stream or hybrid.

Q5. Monetisation model. Per-seat SaaS → model cost-per-seat-hour. Pay-per-view / AVOD → model cost-per-viewer-hour. Enterprise seat licences with flat rate → model cost-per-peak-concurrency.

Need help stress-testing the numbers?

We’ll co-build your cost model, pressure-test assumptions against our production experience, and deliver a conservative monthly estimate with per-user-hour economics. Agent Engineering acceleration means the numbers land fast.

Book a 30-min call → WhatsApp → Email us →

Cost plan per product stage: MVP, launch, growth, scale

MVP (0–100 active users). Aim for a sub-$100/month bill. Mux or Cloudflare Stream for VOD, a single DigitalOcean Droplet for signalling, ignore observability beyond free tiers. Don’t over-engineer; instrument unit cost only.

Launch (100–1,000 active users). Bill typically $200–$1,500/month. Start splitting roles (API, SFU, origin). Introduce ABR if you haven’t. Instrument cost-per-user-hour weekly.

Growth (1k–10k active users). Bill $1.5k–$15k/month. Review the four lines monthly; swap providers when a line can halve. Consider hybrid stack (Hetzner compute + Bunny CDN) if you’re on AWS and growing fast.

Scale (10k+ active users). Bill $15k+ but unit cost should be falling. Negotiate CDN commits, explore direct peering, tighten cold-tier storage, and revisit the codec mix every two quarters. An in-house SRE/infra engineer pays back here.

Mini case: Worldcast Live — 10,000 concurrent HD viewers at predictable cost

Situation. Worldcast Live needed a high-definition live concert streaming platform that could handle 10,000+ concurrent viewers with sub-second latency, unpredictable peaks on event nights, and strict cost discipline between events.

What we built. A tiered stack: dedicated ingest nodes on Hetzner for cost-efficient transcoding, a Bunny CDN with regional POPs for egress, CloudFront only for regions where Bunny performance needed back-up, autoscaling signalling on Kubernetes, long-TTL segments for VOD replay. P2P relay on the viewer side where concert networks permitted. Full-ladder ABR and H.265/AV1 dual encoding for 50% egress savings vs baseline H.264.

Outcome. Cost per concurrent viewer-hour held at a predictable rate through 10× traffic spikes; between events the infra bill drops to baseline autoscale; peak nights never blew the budget because the architecture bent rather than broke. Want a similar predictability model for your live product? Book 30 minutes and we’ll walk through the numbers.

KPIs: the four numbers to watch on the infra dashboard

1. Cost per active user-hour. Total infra spend ÷ total active user-hours. The north-star unit metric. Target: falls (or at least holds flat) as the product scales.

2. Egress GB per DAU. Watch for creep — unoptimised client-side logic, duplicate fetches, accidental 4K on mobile, missing CDN caching.

3. Cache hit ratio. At 90+%, your CDN is doing its job. Below 80%, manifests or segments are not being cached long enough.

4. Storage growth vs usage growth. If storage grows faster than DAU, retention policy is broken. Audit quarterly.

When you should not run your own video infra

Fewer than 1 TB/month egress, no dedicated DevOps, MVP stage, or non-core-to-business video: use Mux, Cloudflare Stream, Bunny Stream or Vimeo. The engineering hours you’d spend tuning an SFU or a CDN pipeline are worth more spent on product. Revisit DIY when you cross ~10 TB/month, start hitting managed-vendor price shelves, or when compliance / residency rules force on-prem.

FAQ

What’s a realistic monthly bill for an MVP video app?

A 1:1 video MVP on DigitalOcean or Hetzner runs $50–$300/month with WebRTC and TURN. A simple VOD product under 1 TB egress on Mux or Cloudflare Stream lands $20–$100/month. The costs only climb seriously once you cross 1 TB/month egress or 500 concurrent WebRTC legs.

AWS or Hetzner for a video startup?

Hetzner for anything egress-heavy in Europe; AWS when you need managed services (MediaConvert, MediaLive, Transcribe), enterprise contracts, or global breadth beyond Bunny/Cloudflare’s footprint. Many production stacks are hybrid: Hetzner for bulk origin and SFU, AWS for managed pieces that would cost weeks of engineering to self-build.

Do I need a CDN for a WebRTC conferencing product?

For real-time WebRTC streams, no — CDNs don’t cache RTP traffic. For recordings (VOD playback post-call), yes — put a CDN in front of S3/R2 from day one.

How much does transcoding really cost?

AWS MediaConvert is around $0.0075/minute for SD, $0.017/minute for HD, $0.024/minute for 4K. FFmpeg on a spot GPU runs ~$0.002–$0.005/minute for HD at scale. Mux’s first 100k minutes are free — fine for most MVPs. Transcoding is almost never the dominant cost; egress is.

Does H.265 or AV1 really save money?

Yes, once egress crosses ~10 TB/month. H.265 cuts bitrate 25–50% vs H.264; AV1 cuts another 20–30% on top. Encoding costs are higher (particularly AV1 at ~10× H.264 encode time), but egress savings dwarf that past a few TB.

When should I move off managed vendors?

Usually around 50–100 TB/month egress, when the vendor’s per-GB rate exceeds what a DIY Hetzner + Bunny stack would cost. Below that, stay managed — the engineering spend isn’t worth the savings.

How do I predict the bill for a product that hasn’t launched?

Model the four lines with conservative assumptions: 70% of DAU are actively streaming, average session 15–20 minutes, full ABR 1.3× uplift, retention policy of 90 days. Run the model at 10× your expected launch DAU for sanity. Review monthly against real metrics once live.

Can Fora Soft build my cost model and validate the stack?

Yes, that’s a common first engagement. We take your product spec, build a conservative four-line model, and recommend a provider mix with per-user-hour economics. Typical turnaround is 3–5 working days. Book a call to kick it off.

Implementation

How to Implement Video Streaming in an E-learning App

The playbook that complements this cost model on the engineering side.

Cloud

AWS vs DigitalOcean vs Hetzner

Deeper comparison of the three providers that dominate startup video infra.

Architecture

P2P vs MCU vs SFU for Video Conferencing

The architecture that defines how much compute you burn per participant.

Edge

Edge Computing in Live Streaming

How edge tricks cut latency and egress at the same time.

Case study

Worldcast Live — 10,000-concurrent HD streaming

How we held cost-per-viewer-hour flat through 10× peaks.

Ready to model your real video-platform cost?

Video-platform infrastructure cost looks scary until you split it into four lines. Egress is the one that matters; it’s usually 70–95% of the bill, and the levers to shrink it — ABR, H.265/AV1, CDN choice, P2P, long TTLs — are architecture decisions, not provider negotiations. Storage is small but worth policing with retention policies and cold tiers. Compute is moderate once you autoscale and pick the right SFU pattern for your cohort size. Third-party services are a modest tax for everything you don’t want to build from scratch.

Pick providers from the four-line perspective: AWS for managed breadth, Hetzner for bulk EU compute and free dedicated egress, Cloudflare / Bunny for world-class CDN economics, DigitalOcean for predictability. Model per-user-hour, not monthly totals. Review quarterly. Do that and your infra bill stops being a surprise — and starts becoming the quiet margin that keeps your video business viable. If you want a team that has shipped video infra across conferencing, streaming and OTT for 21 years, book a call; we’ll co-model your stack with Agent Engineering acceleration and tell you honestly where to save and where not to.

Let’s build your video cost model together

21 years of real-time video across 625+ products. Book 30 minutes and walk away with a four-line cost model, a provider recommendation and realistic per-user-hour economics for your product.

Book a 30-min call → WhatsApp → Email us →

  • Processes
    Services