Cloudflare Stream
Video streaming infrastructure - European alternative based in United States
Quick Overview
| Company | Cloudflare Stream |
|---|---|
| Category | Video Platforms |
| Headquarters | San Francisco, United States |
| EU/European | Yes - United States |
| Open Source | No |
| GDPR Compliant | Yes |
| Main Features | Video encoding, Adaptive streaming, Analytics, Live streaming, API |
| Pricing | From $5/1000 minutes stored |
| Best For | Developers building video applications |
| Replaces | YouTube, Mux |
Detailed Review
Cloudflare Stream is a video hosting and delivery platform built on top of Cloudflare's massive global edge network, which spans over 300 cities across more than 100 countries. Launched in 2018 as part of Cloudflare's developer platform, Stream is designed to remove the complexity of video infrastructure by handling encoding, storage, adaptive bitrate streaming, and delivery through a simple, unified API. While Cloudflare is headquartered in San Francisco, the company maintains a significant European presence through its London office (Cloudflare EU) and operates extensive infrastructure within the EU, with data processing agreements and regional data handling options for European customers.
The video platform market has historically been dominated by complex, multi-service architectures -- think AWS MediaConvert for encoding, S3 for storage, CloudFront for delivery, and a separate player library. Cloudflare Stream collapses this entire pipeline into a single product with straightforward per-minute pricing. For developers and businesses that need to add video capabilities to their applications without becoming video infrastructure experts, Stream offers a compelling alternative to both hyper-cloud video stacks and specialized platforms like Mux.
Video Upload and Encoding
Uploading video to Cloudflare Stream is handled through either the API, the Cloudflare dashboard, or direct creator uploads via a tokenized upload URL. The platform accepts virtually any video format and automatically transcodes uploaded content into multiple quality levels optimized for adaptive streaming. Encoding is always free -- you pay nothing for the transcoding process itself, which is a meaningful cost advantage over AWS MediaConvert and similar services that charge per minute of processed video.
Stream supports videos up to 30 GB in size, with resumable uploads via the TUS protocol for reliability over unstable connections. For programmatic use cases, the upload API supports both single-request uploads and multi-part uploads. Webhook notifications alert your application when encoding completes, enabling automated workflows. The encoding pipeline produces multiple renditions at different bitrates and resolutions, ensuring smooth playback on everything from mobile phones on 3G connections to 4K displays on fiber broadband.
Adaptive Bitrate Streaming
Once encoded, videos are delivered using adaptive bitrate streaming via both HLS (HTTP Live Streaming) and DASH (Dynamic Adaptive Streaming over HTTP). The player monitors the viewer's available bandwidth in real time and seamlessly switches between quality levels to maintain uninterrupted playback. This means viewers on fast connections see crisp, high-resolution video while those on slower connections still get a smooth viewing experience without buffering.
Cloudflare's intelligent bitrate adaptation goes beyond standard ABR implementations. The platform analyzes the actual video content being delivered and provides the most accurate bitrate estimates possible to client players, resulting in higher quality playback with fewer unnecessary resolution drops. The global edge network ensures that video content is served from a location geographically close to each viewer, minimizing latency and buffering regardless of where the original content is stored.
Live Streaming
Cloudflare Stream supports live video streaming via RTMPS and SRT ingest protocols. You create a live input through the API or dashboard, receive ingest credentials, and push your live feed from any compatible encoder (OBS, Wirecast, vMix, or hardware encoders). Stream automatically transcodes the live feed into multiple quality levels and distributes it across Cloudflare's edge network for global delivery with low latency.
Low-Latency HTTP Live Streaming (LL-HLS) is available as a feature that significantly reduces the delay between the live event and viewer playback. Standard HLS typically introduces 15-30 seconds of latency; LL-HLS brings this down to a few seconds, making it suitable for interactive use cases like live Q&A sessions, auctions, or sports commentary where near-real-time delivery matters. Live recordings can be automatically saved as on-demand videos, with the same storage and delivery pricing as regular uploads.
Stream Player and Custom Playback
Cloudflare provides a built-in Stream Player that can be embedded on any website using an iframe or a web component. The player is lightweight, responsive, and includes standard controls for play/pause, volume, fullscreen, quality selection, and playback speed. It supports captions, subtitles, and poster images. The player is designed to load quickly and consume minimal bandwidth, leveraging Cloudflare's edge network for optimal performance.
For teams that need custom playback experiences, Stream provides standard HLS and DASH manifest URLs that work with any compatible video player, including Video.js, hls.js, Shaka Player, and native mobile players. This means you can integrate Cloudflare Stream as a backend while maintaining complete control over the frontend playback experience. Signed URLs and token-based access control allow you to restrict who can view your videos, enabling paid content, gated access, and DRM-like protection.
Analytics and Viewer Insights
Stream includes built-in analytics that track views, minutes watched, unique viewers, and playback quality metrics. The analytics dashboard provides visibility into how your content is being consumed, which videos are most popular, and where viewers are dropping off. Data is available through both the dashboard and the GraphQL Analytics API, enabling integration with custom dashboards and business intelligence tools.
However, the analytics capabilities are relatively basic compared to dedicated video analytics platforms. There are no engagement heatmaps, A/B testing features, or advanced audience segmentation tools. For content businesses that rely on detailed viewer behavior analysis to optimize their video strategy, Stream's analytics may need to be supplemented with third-party tools or custom tracking implementations using the player API's event hooks.
Developer Experience and API
Cloudflare Stream's API is RESTful and well-documented, covering all platform operations including upload, encoding management, live input creation, playback URL generation, and analytics retrieval. The API follows Cloudflare's standard authentication patterns and is accessible through the same API tokens used for other Cloudflare services. For teams already using Cloudflare Workers, Stream integrates naturally with the serverless compute platform, enabling workflows like video processing triggers, dynamic watermarking, and access control logic.
Cloudflare Workers integration is particularly powerful for building sophisticated video applications. You can write serverless functions that intercept video requests, apply business logic (authentication, geofencing, rate limiting), and customize the delivery pipeline without managing any server infrastructure. This combination of Stream's video capabilities with Workers' compute platform creates an application development environment that is difficult to replicate on other cloud providers without significantly more infrastructure complexity.
Pricing Model
Cloudflare Stream uses a simple two-dimensional pricing model: $5 per 1,000 minutes of video stored and $1 per 1,000 minutes of video delivered. Storage is prepaid in increments, while delivery is billed based on actual usage. Critically, there are no separate charges for encoding, bandwidth, or API calls -- these are included in the base pricing. The minimum commitment is $5 per month for 1,000 minutes of storage with 5,000 minutes of delivery included.
This pricing structure is refreshingly transparent compared to the multi-line-item invoices from AWS (which charges separately for MediaConvert, S3 storage, CloudFront bandwidth, and API requests) or the per-asset fees from some competitors. For predictable video workloads, the cost is easy to estimate. However, for very high-volume delivery scenarios, the per-minute delivery cost can add up quickly. Businesses with millions of minutes of monthly delivery should compare Stream's pricing against CDN-level video delivery options or negotiate enterprise terms with Cloudflare.
European Considerations and GDPR
While Cloudflare is a US-headquartered company, it has made significant investments in European compliance. Cloudflare offers a Data Localization Suite that allows customers to control where their data is processed, and the company has committed to storing certain data types exclusively in EU data centers when requested. Cloudflare's London office oversees European operations, and the company maintains data processing agreements compliant with GDPR requirements.
That said, as a US company, Cloudflare remains subject to the CLOUD Act and other US government data access regulations. For European businesses with strict data sovereignty requirements -- particularly in government, healthcare, or finance -- this may be a concern that cannot be fully mitigated by contractual commitments alone. Organizations with absolute European data residency requirements may want to evaluate EU-native alternatives like api.video (France) or Bunny Stream (Slovenia), even if these platforms offer a smaller global network than Cloudflare.
Limitations and Considerations
Cloudflare Stream is intentionally focused on straightforward video hosting and delivery. It does not include advanced features like in-player interactive elements, video editing tools, AI-powered content analysis, custom encoding profiles, or comprehensive content management system features. Teams building video-first products that require granular control over encoding parameters, complex playlist management, or advanced DRM may find Stream too limited.
The platform's 30 GB file size limit, while generous for most use cases, may be restrictive for organizations working with very high-resolution content or lengthy unedited footage. Live streaming is limited to RTMPS and SRT ingest, which covers the vast majority of use cases but excludes some specialized broadcast workflows. There is also no built-in video editing or clipping functionality -- content must be prepared before upload.
Who Should Choose Cloudflare Stream
Cloudflare Stream is best suited for developers and product teams that need to add video capabilities to their applications without the complexity of assembling a multi-service video pipeline. SaaS companies adding video features to their products, e-learning platforms hosting course content, media companies distributing video at scale, and any business already using Cloudflare's CDN or Workers platform will find Stream a natural fit. The platform excels for use cases requiring reliable delivery with simple pricing. For businesses needing advanced video analytics, interactive features, or absolute EU data sovereignty, alternatives like api.video, Bunny Stream, or Mux may be more appropriate.
Alternatives to Cloudflare Stream
Looking for other European video platform solutions? Here are some alternatives worth considering:
Frequently Asked Questions
Cloudflare offers GDPR-compliant data processing agreements and a Data Localization Suite that allows customers to control where data is processed. However, as a US-headquartered company, Cloudflare is subject to the CLOUD Act. For most video hosting use cases, this is manageable since Stream primarily handles video content rather than personal data. Organizations with strict EU-only requirements should evaluate EU-native alternatives.
Cloudflare is headquartered in San Francisco, USA, with a significant European presence through its London office (Cloudflare EU). The company's edge network spans 300+ cities in 100+ countries, including extensive European infrastructure. Stream was launched in 2018 as part of Cloudflare's developer platform.
Cloudflare Stream charges $5 per 1,000 minutes of video stored (prepaid) and $1 per 1,000 minutes of video delivered (usage-based). Encoding and bandwidth are included at no extra cost. The minimum commitment is $5/month for 1,000 minutes of storage with 5,000 minutes of delivery. There are no separate charges for encoding, API calls, or CDN bandwidth.
Cloudflare Stream replaces multi-service video pipelines like AWS MediaConvert + S3 + CloudFront, as well as dedicated platforms like Mux and embedded YouTube. It is especially compelling for teams that want to avoid assembling separate services for encoding, storage, CDN delivery, and player functionality. Stream provides all of these in a single product with unified pricing.
Yes, Cloudflare Stream supports live streaming via RTMPS and SRT ingest protocols. It works with standard encoders like OBS, Wirecast, and hardware encoders. Stream automatically transcodes live feeds into multiple quality levels and distributes them globally. Low-Latency HLS (LL-HLS) is available for near-real-time delivery, reducing latency from the typical 15-30 seconds down to a few seconds.
Yes, Cloudflare Stream provides standard HLS and DASH manifest URLs that work with any compatible video player, including Video.js, hls.js, Shaka Player, and native mobile players. You can use the built-in Stream Player for quick embedding or bring your own player for full control over the playback experience, design, and interactivity.
Stream automatically transcodes uploaded videos into multiple quality levels for adaptive bitrate streaming. Encoding is always free -- there is no per-minute encoding charge. The platform accepts virtually any video format and produces renditions optimized for devices ranging from mobile phones on 3G to 4K displays. Webhook notifications alert your application when encoding completes.
Yes, Stream integrates with Cloudflare Workers, enabling serverless functions that intercept video requests and apply business logic such as authentication, geofencing, rate limiting, and dynamic watermarking. This combination creates a powerful application development environment for building sophisticated video features without managing server infrastructure.
Both are developer-focused video APIs, but they differ in approach. Mux offers more advanced analytics (Mux Data), custom encoding profiles, and sophisticated player SDKs. Cloudflare Stream provides simpler pricing, free encoding, and leverages Cloudflare's massive CDN for delivery. Stream is better for straightforward video hosting; Mux is better for video-first products requiring granular control and analytics.
Cloudflare Stream supports videos up to 30 GB in file size. Resumable uploads via the TUS protocol ensure reliability over unstable connections. For most use cases -- including course content, marketing videos, product demos, and user-generated content -- this limit is more than adequate. Organizations working with very high-resolution or unedited footage may need to pre-process content before upload.