Skip to content

Pricing

Cloudflare Stream lets you broadcast, store, and deliver video using a simple, unified API and simple pricing. Stream bills on two dimensions only:

  • Minutes of video stored
  • Minutes of video delivered

On-demand and live video are billed the same way.

Ingress (sending your content to us) and encoding are always free. Bandwidth is already included in “video delivered” with no additional egress (traffic/bandwidth) fees.

Minutes of video stored

Storage is a prepaid pricing dimension purchased in increments of $5 per 1,000 minutes stored, regardless of file size. You can check how much storage you have and how much you have used on the Stream page in Dash.

Storage is consumed by:

  • Original videos uploaded to your account
  • Recordings of live broadcasts
  • The reserved maxDurationSeconds for Direct Creator and TUS uploads which have not been completed. After these uploads are complete or the upload link expires, this reservation is released.

Storage is not consumed by:

  • Videos in an unplayable or errored state
  • Expired Direct Creator upload links
  • Deleted videos
  • Downloadable files generated for MP4 Downloads

Storage consumption is rounded up to the second of video duration. File size does not matter.

If you run out of storage, you will not be able to upload new videos or start new live streams until you purchase more storage or delete videos.

Minutes of video delivered

Delivery is a post-paid, usage-based pricing dimension billed at $1 per 1,000 minutes delivered. You can check how much delivery you have used on the Billable Usage page in Dash or the Stream Analytics page under Stream.

Delivery is counted for the following uses:

  • Playback via HLS or DASH
  • MP4 Downloads
  • Simulcasting via SRT or RTMP live outputs

Delivery is counted by HTTP requests for video segments or parts of the MP4. Therefore:

  • Client-side preloading and buffering is counted as billable delivery.
  • Content played from client-side/browser cache is not billable, like a short looping video. Some mobile app player libraries do not cache HLS segments by default.
  • MP4 Downloads are billed by percentage of the file delivered.

HLS and DASH playback is rounded to the segment length. For uploaded content, HLS and DASH segments are four seconds. Live broadcast segments are determined by the keyframe interval or GOP size.

Example scenarios

Two people each watch thirty minutes of a broadcast. How much would it cost?

This will result in 60 minutes of Minutes Delivered usage (or $0.06). Stream bills on minutes of video delivered, not per viewer.

I have a really large file. Does that cost more?

The cost to store a video is based only on its duration, not its file size. If the file is within the 30GB max file size limitation, it will be accepted. Be sure to use an upload method like Upload from Link or TUS that handles large files well.

If I make a Direct Creator Upload link with a maximum duration (maxDurationSeconds) of 600 seconds which expires in 1 hour, how is storage consumed?

  • Ten minutes will be subtracted from your available storage immediately.
  • If the link is unused in one hour, those 10 minutes will be released.
  • If the creator link is used to upload a five minute video, when the video is uploaded and processed, the 10 minute reservation will be released and the true five minute duration of the file will be counted.
  • If the creator link is used to upload a five minute video but it fails to encode, the video will be marked as errored, the reserved storage will be released, and no storage use will be counted.

I am broadcasting live, but no one is watching. How much does that cost?

A live broadcast with no viewers will cost $0 for minutes delivered, but the recording of the broadcast will count toward minutes of video stored.

If someone watches the recording, that will be counted as minutes of video delivered.

If the recording is deleted, the storage use will be released.

I want to store and deliver millions of minutes a month. Do you have volume pricing?

Yes, contact our Sales Team.