Cloudflare Stream Pricing in 2026: Real Video Costs Explained

Cloudflare Stream Pricing in 2026: Real Video Costs Explained

Cloudflare Stream pricing in 2026 has one number that decides everything: $1 per 1,000 minutes of video delivered. That's it. No egress tiers, no request charges, no regional multipliers. It also means a single 90-minute live event with 40,000 concurrent viewers costs roughly $3,600 in delivery alone, before you store a single byte of the recording. This article gives you the full 2026 rate card, a worked cost model at realistic watch-hour volumes, the multipliers that quietly inflate billable minutes, and the crossover threshold where a straight CDN-plus-player stack gets cheaper.

image-2

Cloudflare Stream pricing in 2026: the actual rate card

Stream bills on two axes, both denominated in minutes of video rather than gigabytes. As of 2026 the published rates are:

  • Storage: $5 per 1,000 minutes of video stored, per month. That is $0.005 per stored minute, or about $5 for roughly 16.6 hours of source material.
  • Delivery: $1 per 1,000 minutes of video delivered. $0.001 per viewer-minute.
  • Minimum: $5/month entry commitment, which includes the first 1,000 stored minutes.
  • Encoding: $0. Transcoding, ABR ladder generation, HLS and DASH packaging, and the player are bundled into the storage and delivery rates.
  • Live: Same rates. Live input minutes are billed as storage while recording; concurrent viewers are billed as delivered minutes.

The storage unit is the detail most cost models get wrong. You are billed on source duration, not on the total bytes of every rendition. A 60-minute upload that fans out into six renditions still counts as 60 stored minutes. That's genuinely generous compared to object-storage-plus-encoder architectures, where a six-rung ladder can multiply stored bytes by 3–4×.

The delivery unit is where the model turns against you at scale. Minutes are counted regardless of bitrate. A viewer pinned to a 400 kbps rendition on a phone costs exactly the same as a viewer pulling 8 Mbps 4K on a smart TV. If your engineering team is good at codec efficiency, Stream gives you zero financial credit for it.

A worked 2026 cost example at realistic viewing hours

Most pricing posts stop at "$1 per 1,000 minutes" and leave the reader to do arithmetic. Here is the model I actually use in architecture reviews, expressed in watch hours because that's the metric your analytics pipeline already emits.

One watch hour = 60 delivered minutes = $0.06 in Stream delivery. Round it to six cents per hour watched and you can estimate any workload in your head.

Workload profile (monthly) Watch hours Delivery Library / storage Stream total
SaaS product tour, in-app help 830 h (50k min) $50 600 min ≈ $3 ~$53
Course platform, 8k learners 8,300 h (500k min) $500 12,000 min ≈ $60 ~$560
Mid-size OTT / niche VOD 83,000 h (5M min) $5,000 40,000 min ≈ $200 ~$5,200
Large publisher, news + clips 333,000 h (20M min) $20,000 150,000 min ≈ $750 ~$20,750
Live sports / ticketed events 833,000 h (50M min) $50,000 20,000 min ≈ $100 ~$50,100

Storage is noise in every row. Delivery is 96–99.8% of the bill. Any optimization effort aimed at Cloudflare Stream pricing that focuses on library size is wasted effort.

Translating viewer-minutes into bytes for a fair comparison

To compare Stream against bandwidth-priced delivery you need an average delivered bitrate. Do not use your top rung. Use the weighted average your player actually selects. Typical 2026 mixes:

  • Mobile-heavy consumer app, AV1 or H.265 available: 1.2–1.8 Mbps average.
  • Web-dominant catch-up TV, H.264 ladder up to 1080p: 2.5–3.5 Mbps average.
  • Living-room-heavy OTT with 4K rungs: 5–8 Mbps average.

At 3 Mbps average, one delivered minute is 22.5 MB. One million viewer-minutes is roughly 22.5 TB and costs $1,000 on Stream. That works out to about $44 per TB of egress. At a 1.5 Mbps mobile average the same million minutes is 11.25 TB, or roughly $89 per TB. Both numbers are an order of magnitude above commodity CDN pricing in 2026, which is the entire crossover story.

The multipliers that inflate billable minutes

Your product analytics will under-report Stream minutes unless you account for these. I have seen invoices land 25–40% above the modeled figure for exactly these reasons.

  • Scrubbing and seeks. Every re-fetched segment is delivered minutes. A user who scrubs through a 40-minute lecture hunting for one slide can bill 15 minutes without watching anything.
  • Autoplay and hover previews. Muted autoplay tiles on a homepage grid are the single most expensive UX pattern under a per-minute model. Ten previews at 5 seconds each per pageview, across 2M pageviews, is 1.6M billable minutes — $1,600/month for video nobody chose to watch.
  • Bandwidth-triggered rung switching. Mid-playback ladder changes cause overlapping segment fetches. Small effect, but non-zero.
  • Live DVR and rewind. A viewer who rewinds a live stream twice and catches back up bills roughly 1.4× wall-clock time.
  • Live recording persistence. A 4-hour broadcast saved as VOD adds 240 stored minutes ($1.20/month) — trivial, unless you keep 500 archived broadcasts, which is $600/month for content with a long tail of near-zero views.
  • Bot and prefetch traffic. Signed URLs and token auth mitigate this. Unsigned public playback IDs do not.

Cloudflare Stream vs a CDN-plus-player stack in 2026

The honest framing: Stream is not overpriced. It is priced as a managed platform where encoding, packaging, storage, DRM-adjacent signed access, and the player are one line item. If you have no video engineer, the arithmetic below is irrelevant — the platform is worth the premium.

If you do have a video pipeline, or can stand one up on off-the-shelf components, here is what you are comparing at 5 million viewer-minutes per month (83,000 watch hours, ~112 TB at 3 Mbps average):

Approach Delivery cost at ~112 TB Trade-off
Cloudflare Stream $5,000 (billed as 5M minutes) Zero pipeline work; no control over ladder, codecs, segment duration or CMAF packaging
BlazingCDN + own encoder + open-source player $350/month covers 100 TB; ~$42 for the extra 12 TB at $0.0035/GB → ~$392 You own encoding, packaging, manifest logic and player analytics
Fastly / other streaming-focused CDN Committed-volume contracts, typically well under Stream's effective $44/TB Strong live and edge-compute tooling; negotiated pricing, less transparent at list
Bunny.net / CDN77 / Gcore / KeyCDN Low per-TB list rates, often region-tiered Genuinely competitive; check regional pricing bands and origin-shield behavior for your audience mix

The point of that table is not that Stream loses. It is that at 5 million viewer-minutes the delivery line differs by roughly an order of magnitude, and you should know whether $4,600/month buys more engineering than it costs.

For the bandwidth-priced side of that comparison, BlazingCDN's media delivery infrastructure starts at $5 per TB ($0.005 per GB) and steps down to $2 per TB ($0.002 per GB) at the 2,000 TB tier — $100/month for 25 TB, $350 for 100 TB, $1,500 for 500 TB, $2,500 for 1,000 TB, $4,000 for 2,000 TB. It runs on NVMe SSD edge nodes with 100% uptime, flexible per-origin configuration, and fast scaling into demand spikes, delivering stability and fault tolerance comparable to Amazon CloudFront at a materially lower cost per TB — which is what makes it a serious option for enterprises and large media operations doing hundreds of terabytes a month. Onboarding is measured in about an hour, so a parallel A/B against your current delivery path is a one-afternoon experiment.

Failure modes: where Stream cost models break in production

This is the section the vendor pages skip. Four patterns that have wrecked otherwise sound forecasts.

The unbounded-preview blowout

A product team ships a video-first discovery feed with autoplay previews. Traffic is flat, engagement is flat, the Stream bill triples. Under a per-minute model, cost scales with impressions, not with watched content. Fix: static poster frames plus animated WebP thumbnails, and gate real playback behind an explicit click.

The unmonetized long tail

Live archives accumulate. Stored-minute charges are small individually and unbounded collectively. Instrument per-asset delivered minutes and set a lifecycle policy: anything below a viewing threshold for 90 days moves to cold object storage, out of Stream's stored-minute count.

The efficiency trap

An encoding team spends a quarter migrating to AV1 and cuts delivered bytes by 40%. Under Cloudflare Stream pricing, the invoice does not move by a cent, because minutes are the billing unit. Do that work only after you are on bandwidth-priced delivery, or the ROI is purely QoE.

The single-event spike

A per-minute model is perfectly linear, which sounds safe until one keynote or one match produces 30× normal watch hours in 90 minutes. There is no committed-volume smoothing to absorb it. Model your worst plausible concurrency times duration times $0.001 and confirm your finance team has seen that number before the event, not after.

Decision thresholds: when to stay and when to move

  • Under 500,000 viewer-minutes/month (under ~8,300 watch hours, under $500): stay on Stream. Building a pipeline to save $400 is negative ROI.
  • 500,000 to 2 million minutes: stay, but instrument. Track delivered minutes per asset, per surface, and per player event so you have real data before the decision matters.
  • 2 to 5 million minutes ($2,000–$5,000/month): the crossover zone. Run the byte math at your actual weighted bitrate. If your average is above 2.5 Mbps, bandwidth pricing is already cheaper on paper.
  • Above 5 million minutes: a separate encoder plus bandwidth-priced CDN plus an open-source player will typically land 80–90% below Stream on delivery, and codec efficiency work starts paying for itself.
  • Any workload needing custom ladders, per-title encoding, low-latency CMAF tuning, studio DRM, or server-side ad insertion: the pricing question is secondary. Stream's control surface will bound you before its cost does.

FAQ

How does Cloudflare Stream pricing work in 2026?

Two line items: $5 per 1,000 minutes of video stored per month, and $1 per 1,000 minutes of video delivered. Encoding, ABR packaging, and the player are included at no extra charge, and there are no separate bandwidth, egress, or request fees. The minimum spend is $5/month.

Does Cloudflare Stream charge for bandwidth or egress?

No. Delivery is billed strictly on minutes watched, independent of resolution, bitrate, or region. That is favorable for 4K-heavy audiences and unfavorable for mobile-first audiences on low-bitrate renditions, since both pay $0.001 per minute.

What does 1,000,000 viewer-minutes cost on Cloudflare Stream?

$1,000 in delivery. In byte terms that is roughly 22.5 TB at a 3 Mbps weighted average bitrate, an effective rate near $44 per TB — versus $3.50–$5.00 per TB on volume-priced CDNs in 2026.

At what volume does Cloudflare Stream stop being cost-effective?

Around 2–5 million viewer-minutes per month, or roughly $2,000–$5,000 in delivery. Below that, the saved engineering time usually outweighs the premium. Above it, an encoder plus a bandwidth-priced CDN plus a self-hosted player typically cuts the delivery line by 80% or more.

Are there volume discounts on Cloudflare Stream?

No public volume tiers are listed as of Q3 2026. Enterprise contracts can include negotiated terms, so if you are projecting past $10,000/month in delivery it is worth asking before you architect around list pricing.

Does Cloudflare Stream bill live streams differently from VOD?

Same rates. Live input minutes count toward stored minutes while the recording exists, and concurrent viewers are billed as delivered minutes. DVR rewind and catch-up behavior means a live viewer can bill above wall-clock duration.

Can I reduce Cloudflare Stream costs without leaving the platform?

Yes, but only by reducing billable minutes rather than bytes. Kill autoplay previews, replace hover-play with animated thumbnails, use signed playback URLs to block bots and prefetchers, and lifecycle old archives out of stored minutes. Codec and bitrate optimization saves nothing under a per-minute model.

Run this before your next renewal

Pull 90 days of delivered minutes from the Stream analytics API and 90 days of weighted average bitrate from your player telemetry. Multiply to get delivered terabytes, then divide your Stream delivery spend by that figure. You now have your true cost per terabyte. Compare it against volume CDN pricing at your tier, subtract a realistic estimate of encoder and player engineering, and you have a defensible number instead of a hunch.

Then segment those minutes by surface. If more than 10% of your billable minutes come from autoplay or hover previews rather than deliberate playback, you have a UX fix that pays better than any vendor migration. What share of your video minutes is content nobody chose to watch?