Direct answer: at 720p/2.5 Mbps, with 1,000 hours stored and 10,000 hours delivered per month, video hosting in 2026 costs about Bunny Stream 67.50, Mux 544 and Cloudflare Stream 900 USD per month; small (100h stored + 1,000h delivered) is 6.75 / 14.40 / 90; large (10,000h + 100,000h) is 675 / 6,160 / 9,000. The gap comes from the meter: Cloudflare/Mux bill by minute, Bunny by GB; at 2.5 Mbps Bunny is lowest, but at about 20 Mbps its mid-tier cost reaches about 540, close to Mux at 544. Recalculate for 1080p/4K; do not apply the 720p result directly.

This guide is for engineering, operations and procurement teams running website video, courses/VOD, product demos, user-generated content and live replays. Data cut-off: 6 November 2026; prices come from the US pricing pages of Cloudflare Stream, Mux and Bunny Stream, in USD, excluding tax; all TCOs are editorial calculations, not vendor quotes. The three meters differ, so official facts, bitrate assumptions and non-comparable items are kept separate.

Three rules to remember

Cloudflare Stream: storage 5 per 1,000 minutes/month (prepaid), delivery 1 per 1,000 minutes; Mux: free input, storage 0.0024/minute/month (720p), delivery 0.0008/minute after 100k free; Bunny Stream: free encoding/player, storage from 0.01/GB/month, CDN from 0.005/GB. Per-minute billing ignores bitrate; per-GB billing scales with it — that is the main source of the 6.75 vs 900 gap.

Three meters: per-minute storage/delivery, or per-GB storage/traffic

Cloudflare Stream bills two dimensions only: storage at 5 per 1,000 minutes/month (prepaid in 5 increments) and delivery at 1 per 1,000 minutes; upload/encoding is free, bandwidth is included in delivery minutes with no extra egress, and live recordings count toward storage. Mux: input is free; 720p storage is 0.0024/minute/month and delivery is 0.0008/minute (first 100k delivery minutes/month free); 1080p is 1.25× the 720p base, 2K 2× and 4K 4×; PAYG also advertises a 20/month usage credit (not deducted here; see limitations). Bunny Stream: encoding, player and security features are free; storage starts at 0.01/GB/month and CDN at 0.005/GB; there is a 1/month minimum. Per-GB billing means the bill depends on the encoding ladder, resolution, region and replication points, not just “minutes”.

ItemCloudflare StreamMuxBunny Stream
Storage meter5 per 1,000 minutes/month (prepaid)0.0024/minute/month (720p)From 0.01/GB/month
Delivery meter1 per 1,000 minutes0.0008/minute (first 100k free)From 0.005/GB
Upload/encodingFreeInput freeFree
Resolution effectPer minute, no resolution multiplier1080p 1.25×, 2K 2×, 4K 4×Per GB; higher bitrate = more GB
Minimum/freeStorage prepaid in 5 incrementsFirst 100k delivery minutes/month free; PAYG 20/month credit1/month minimum

Sources: Cloudflare Stream Pricing, Mux Pricing and Bunny Stream Pricing (US). Accessed 6 November 2026; USD, excluding tax; Bunny’s 0.01/GB and 0.005/GB are “from” rates that vary by region, volume and replication; Mux’s 20/month credit is not deducted in the TCO.

Three tiers: Bunny lowest at 2.5 Mbps, Mux second

At 720p/2.5 Mbps (about 0.01875 GB/minute): 100h stored + 1,000h delivered — Bunny 6.75, Mux 14.40, Cloudflare 90; 1,000h + 10,000h — Bunny 67.50, Mux 544, Cloudflare 900; 10,000h + 100,000h — Bunny 675, Mux 6,160, Cloudflare 9,000. Annual mid-tier: Bunny 810, Mux 6,528, Cloudflare 10,800. If Mux’s 20/month credit applies, the small tier’s 14.40 could fall to 0; the table keeps the uncredited number so a promotion is not treated as a permanent price.

Monthly scenarioBunny StreamMuxCloudflare Stream
100h stored + 1,000h delivered6.7514.4090
1,000h stored + 10,000h delivered67.50544900
10,000h stored + 100,000h delivered6756,1609,000

Editorial calculation, not a quote. Bunny = (storage minutes + delivery minutes) × 0.01875 GB/minute, then × 0.01 and × 0.005; Mux = storage minutes × 0.0024 + max(0, delivery minutes − 100,000) × 0.0008; Cloudflare = storage minutes/1,000 × 5 + delivery minutes/1,000 × 1. Excludes tax, DRM/enterprise features, captions/analytics, live, support, migration and extra egress; Bunny region/volume/replication adjustments are excluded.

Bitrate sensitivity: Bunny mid-tier adds about 27/month per Mbps

With per-GB billing, bitrate is the biggest variable: the mid-tier (1,000h stored + 10,000h delivered) costs about 27 at 1 Mbps, 67.50 at 2.5, 135 at 5, 270 at 10 and 540 at 20. Cloudflare/Mux per-minute prices do not change with bitrate (Mux applies resolution multipliers), so Bunny and Mux mid-tier break even at about 20 Mbps; Bunny and Cloudflare mid-tier at about 33 Mbps. 1080p is commonly 4–8 Mbps and 4K 15–25 Mbps: Bunny stays well below at 1080p, but the gap narrows sharply at high-bitrate 4K; Mux 1080p also multiplies storage/delivery by 1.25.

Bitrate (720p/1080p/4K reference)Bunny mid-tier/monthMux mid-tier/monthCloudflare mid-tier/month
1 Mbps27544900
2.5 Mbps67.50544900
5 Mbps135544900
10 Mbps270544900
20 Mbps540544900

Editorial calculation, not a quote. Bunny mid-tier ≈ 27 × bitrate (Mbps): 1,000h stored + 10,000h delivered = 660,000 minutes, × 0.0075 GB/minute/Mbps, priced at 0.01 and 0.005; Mux/Cloudflare are per-minute and do not change with bitrate (Mux 720p base; 1080p storage/delivery × 1.25, 2K × 2, 4K × 4). Excludes tax, DRM, captions, analytics and support.

Hidden costs: prepaid storage, resolution multipliers, region/replication

Cloudflare storage is prepaid in increments: buy 1,000 minutes, use 1,000; if you exceed it you cannot upload until you buy more. Delivery counts actual minutes, and MP4 downloads, preloading and live simulcast may count. Mux’s 100k free minutes apply only to delivery; storage is still per minute, and 1080p/2K/4K multipliers increase both storage and delivery. The PAYG 20/month credit has eligibility/expiry conditions and should not be treated as a permanent discount. Bunny’s 0.01/0.005 are “from” rates that vary by region, volume tier, replication points and enterprise features; free encoding is not free multi-bitrate storage/traffic, and DRM/Transcribe/enterprise security are separate. All three exclude tax, support, migration and custom player work.

ItemCloudflare StreamMuxBunny Stream
Storage billing5 per 1,000 minutes prepaid0.0024/minute/month (720p)From 0.01/GB/month
Delivery billing1 per 1,000 minutes0.0008/minute, first 100k freeFrom 0.005/GB
ResolutionNo multiplier1080p 1.25×, 2K 2×, 4K 4×Higher bitrate = more GB
Region/replicationGlobal, uniformRegional/enterprise contractRegion rates, replication, volume tiers
Extra featuresLive/MP4 downloads count as deliveryAI/captions/analytics extraDRM/Transcribe/enterprise security extra

Sources: the three official pricing pages (accessed 6 November 2026). Only publicly verifiable items are listed; “extra” means confirm on the product/contract page and is not guessed here. Excludes tax, support, migration and custom development.

Which option fits which scenario?

API-first, global delivery, predictable budget: Cloudflare Stream, per minute, no resolution multiplier, no egress; but its mid-tier 900 is above Mux’s 544 here. Lower mid-tier cost with resolution multipliers: Mux, 720p base plus 100k free delivery minutes, good for product/course video. Cost-sensitive, able to control the encoding ladder, mostly 720p/1080p: Bunny Stream, per GB with free encoding, 67.50 at 2.5 Mbps mid-tier; 4K/high-bitrate, DRM and enterprise support need a separate quote. Marketing video with player, lead forms and audience analytics: Wistia/Vimeo-style “plan + seats/storage” products fit better and are outside this TCO. Live replay: all three charge recording storage plus delivery; confirm live minutes and simulcast.

ScenarioFirst choiceWhyCheck first
API/global/predictable budgetCloudflare StreamPer minute, no resolution multiplier, no egressPrepaid storage, live/download metering
Mid-tier cost/product course videoMux720p 0.0024/minute + 100k free delivery1080p+ multipliers, 20 credit terms
Cost-sensitive/720p·1080pBunny StreamPer GB, free encoding, lowest at 2.5 MbpsRegion/replication, bitrate, DRM
4K/DRM/enterpriseMux / Bunny EnterpriseTransparent resolution multipliers/enterprise security4K multiplier, DRM contract
Marketing video/leadsWistia/VimeoPlayer, forms, analytics bundledPlan/seats/storage; outside this TCO
Live replayAll threeRecording storage + deliveryLive minutes, simulcast, latency

Sources: the three official pricing pages (accessed 6 November 2026). This is an editorial decision matrix, not vendor advice; actual startup latency, rebuffering, global node quality, DRM compatibility and support response were not tested.

What should procurement and acceptance specify?

At least ten things: monthly stored hours, monthly delivered hours, bitrate ladder/resolution, codecs (H.264/HEVC/AV1), DRM/hotlink protection, player/analytics, live/simulcast, region/replication, SLA/support, migration/rollback. Run a 2–4 week POC on real traffic and record stored minutes, delivered minutes, GB, startup latency, rebuffering, peak bandwidth and the bill; do not compare only “price per minute” or “price per GB”.

  • Storage: originals, transcoded renditions, live recordings, retention; multiple bitrates/resolutions.
  • Delivery: monthly hours, average watch time, completion rate, MP4 downloads/preloading.
  • Bitrate: 720p/1080p/4K ladder and average bitrate; the main variable for per-GB billing.
  • Encoding: H.264/HEVC/AV1, ladder depth, on-demand transcoding.
  • Security: DRM, signed URLs, hotlink protection, geo restrictions, watermarking.
  • Player: adaptive bitrate, captions, chapters, picture-in-picture, branding.
  • Analytics: watch time, retention, geography, device, QoE/rebuffering.
  • Live: RTMP/SRT/WebRTC, simulcast, recording, latency.
  • Contract: prepaid/postpaid, minimum, region rates, volume tiers, support/SLA.
  • POC: 2–4 weeks of real traffic; record storage/delivery/GB, startup, rebuffering, peak and bill.

FAQ

What is cheapest for 1,000h stored + 10,000h delivered?

At 720p/2.5 Mbps: Bunny 67.50, Mux 544, Cloudflare 900 per month. Bunny bills per GB: 1,125GB stored and 11,250GB delivered; Mux is 144 storage + 400 delivery; Cloudflare 300 + 600. At 20 Mbps Bunny is about 540, close to Mux.

Why is Bunny so much cheaper?

It bills per GB and encoding is free; at 2.5 Mbps one hour is about 1.125GB, while Cloudflare/Mux charge 60 minutes per hour. The gap comes from “minutes vs GB”, not the same unit. At 10–20 Mbps the advantage narrows to 2–8× or near parity.

Mux or Cloudflare?

In this mid-tier model Mux is 544 and Cloudflare 900: Mux storage is 0.0024/minute vs Cloudflare 0.005, delivery 0.0008/minute vs 1/1,000 minutes, plus 100k free delivery minutes; Cloudflare wins on per-minute simplicity, no resolution multiplier and no egress. Add Mux’s 1.25×/2×/4× for 1080p/2K/4K.

Is Mux’s 20-dollar credit included?

No. The PAYG page advertises a 20/month usage credit, but eligibility/expiry are not detailed on the pricing page; the table keeps the uncredited number. If it applies long-term, subtract 20 (floor 0): small 14.40 may become 0, mid 524, large 6,140; the ranking does not change.

Do 1080p/4K need recalculation?

Yes. Mux multiplies storage/delivery by 1.25 for 1080p, 2× for 2K and 4× for 4K; Cloudflare does not apply a resolution multiplier; Bunny’s per-GB cost rises with bitrate. The 2.5 Mbps assumption is 720p; 1080p is commonly 4–8 Mbps and 4K 15–25 Mbps, so use your real ladder.

Is storage or delivery the bigger cost?

At the 1:10 storage/delivery hour ratio here, delivery dominates: Mux mid-tier 144 storage + 400 delivery; Cloudflare 300 + 600; Bunny 11.25 + 56.25. With a large library and low viewing, storage dominates and Bunny’s per-GB advantage grows.

How is live billed?

All three count live recordings as storage and viewing as delivery; Cloudflare also counts simulcast and MP4 downloads as delivery. Ingress/encoding is free at Cloudflare, Mux input is free, Bunny encoding is free; live minutes, recording retention and simulcast outputs need separate confirmation.

What hidden costs should we expect?

DRM/hotlink protection, captions/transcription, analytics, custom player, live simulcast, region/replication, prepaid storage, minimums, support/SLA, migration/rollback and tax. Per-GB billing must include the multi-bitrate ladder and real average bitrate; per-minute billing must confirm resolution multipliers and which requests count as delivery.

Research method and limitations

This article separates “official facts” from “editorial modelling”: Cloudflare Stream storage/delivery rates, Mux input/storage/delivery/resolution multipliers and Bunny Stream storage/CDN rates come from the three US pricing pages (accessed 6 November 2026); the three TCO tiers are arithmetic at 720p/2.5 Mbps (0.01875 GB/minute), not vendor quotes. It does not compare actual startup latency, rebuffering, global node quality, DRM compatibility, player features or support response.

Eight limitations: (1) only US public list prices are used, excluding tax, discounts, commitments, regional and contract pricing; (2) everything is modelled at 720p/2.5 Mbps, while real 1080p/4K bitrates are higher and raise Bunny’s per-GB cost; (3) Mux’s 20/month credit is not deducted, and 1080p/2K/4K multipliers are described but not in the main TCO; (4) Cloudflare storage is prepaid, so unused capacity is possible; (5) Bunny’s 0.01/0.005 are “from” rates; region, volume, replication and enterprise features change the bill; (6) DRM, captions/transcription, analytics, custom player, live simulcast, support/SLA, migration and tax are excluded; (7) Wistia/Vimeo-style “plan + seats/storage” products are excluded because their overage prices were not on the public page; (8) prices and terms can change by contract, region and exchange rate. Treat this as a unit-conversion template and replace assumptions with a 2–4 week real-traffic POC.

Sources and basis

  • Cloudflare, Stream Pricing: developers.cloudflare.com/stream/pricing. Storage 5 per 1,000 minutes/month (prepaid in 5 increments); delivery 1 per 1,000 minutes; upload/encoding free; bandwidth included in delivery minutes; live recordings count as storage; MP4 downloads/preloading/simulcast count as delivery. Accessed 6 November 2026.
  • Mux, Pricing: mux.com/pricing. Input free; 720p storage 0.0024/minute/month, delivery 0.0008/minute with the first 100k delivery minutes/month free; 1080p 1.25×, 2K 2×, 4K 4×; PAYG 20/month usage credit. Accessed 6 November 2026.
  • Bunny, Stream Pricing: bunny.net/pricing/stream. Encoding/player free; storage from 0.01/GB/month, CDN from 0.005/GB; 1/month minimum; region, volume, replication and enterprise features are separate. Accessed 6 November 2026.

Data cut-off 6 November 2026; prices are public list prices excluding tax; all models are editorial calculations. This is not procurement advice.

Turn stored hours, delivered hours, bitrate and DRM into a checkable budget

Bring monthly stored/delivered hours, encoding ladder, resolution, DRM/hotlink protection, live and regional requirements; we turn video hosting into a checkable list.

Book a video hosting cost review