---
title: Stream Changelog
image: https://developers.cloudflare.com/cf-twitter-card.png
---

[Skip to content](#%5Ftop) 

# Changelog

New updates and improvements at Cloudflare.

[ Subscribe to RSS ](https://developers.cloudflare.com/changelog/rss/index.xml) [ View RSS feeds ](https://developers.cloudflare.com/fundamentals/new-features/available-rss-feeds/) 

Stream

![hero image](https://developers.cloudflare.com/_astro/hero.CVYJHPAd_26AMqX.svg) 

Mar 18, 2026
1. ### [Media Transformations binding for Workers](https://developers.cloudflare.com/changelog/post/2026-03-18-media-transformations-workers-binding/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
You can now use a Workers binding to transform videos with Media Transformations. This allows you to resize, crop, extract frames, and extract audio from videos stored anywhere, even in private locations like R2 buckets.  
The Media Transformations binding is useful when you want to:  
   * Transform videos stored in private or protected sources  
   * Optimize videos and store the output directly back to R2 for re-use  
   * Extract still frames for classification or description with Workers AI  
   * Extract audio tracks for transcription using Workers AI  
To get started, add the Media binding to your Wrangler configuration:  
   * [  wrangler.jsonc ](#tab-panel-400)  
   * [  wrangler.toml ](#tab-panel-401)  
JSONC  
```  
{  
  "$schema": "./node_modules/wrangler/config-schema.json",  
  "media": {  
    "binding": "MEDIA"  
  }  
}  
```  
TOML  
```  
[media]  
binding = "MEDIA"  
```  
Then use the binding in your Worker to transform videos:  
   * [  JavaScript ](#tab-panel-402)  
   * [  TypeScript ](#tab-panel-403)  
JavaScript  
```  
export default {  
  async fetch(request, env) {  
    const video = await env.R2_BUCKET.get("input.mp4");  
    const result = env.MEDIA.input(video.body)  
      .transform({ width: 480, height: 270 })  
      .output({ mode: "video", duration: "5s" });  
    return await result.response();  
  },  
};  
```  
TypeScript  
```  
export default {  
  async fetch(request, env) {  
    const video = await env.R2_BUCKET.get("input.mp4");  
    const result = env.MEDIA.input(video.body)  
      .transform({ width: 480, height: 270 })  
      .output({ mode: "video", duration: "5s" });  
    return await result.response();  
  },  
};  
```  
Output modes include `video` for optimized MP4 clips, `frame` for still images, `spritesheet` for multiple frames, and `audio` for M4A extraction.  
For more information, refer to the [Media Transformations binding documentation](https://developers.cloudflare.com/stream/transform-videos/bindings/).

Feb 24, 2026
1. ### [Stream live inputs can now be disabled and enabled](https://developers.cloudflare.com/changelog/post/2026-02-24-disable-live-inputs/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
You can now disable a live input to reject incoming RTMPS and SRT connections. When a live input is disabled, any broadcast attempts will fail to connect.  
This gives you more control over your live inputs:  
   * Temporarily pause an input without deleting it  
   * Programmatically end creator broadcasts  
   * Prevent new broadcasts from starting on a specific input  
To disable a live input via the API, set the `enabled` property to `false`:  
Terminal window  
```  
curl --request PUT \  
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \  
--header "Authorization: Bearer <API_TOKEN>" \  
--data '{"enabled": false}'  
```  
You can also disable or enable a live input from the **Live inputs** list page or the live input detail page in the Dashboard.  
All existing live inputs remain enabled by default. For more information, refer to [Start a live stream](https://developers.cloudflare.com/stream/stream-live/start-stream-live/).

Aug 08, 2025
1. ### [Introducing observability and metrics for Stream Live Inputs](https://developers.cloudflare.com/changelog/post/2025-08-08-stream-live-observability/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
New information about broadcast metrics and events is now available in[Cloudflare Stream](https://developers.cloudflare.com/stream/) in the Live Input details of the Dashboard.  
![Live Input details showing metrics](https://developers.cloudflare.com/_astro/2025-08-05-live-input-metrics.B31Z3RGB_Z3m1Fc.webp)  
You can now easily understand broadcast-side health and performance with new observability, which can help when troubleshooting common issues, particularly for new customers who are just getting started, and platform customers who may have limited visibility into how their end-users configure their encoders.  
To get started, start a live stream ([just getting started?](https://developers.cloudflare.com/stream/examples/obs-from-scratch/)), then visit the Live Input details page in Dash.  
See our new live [Troubleshooting](https://developers.cloudflare.com/stream/stream-live/troubleshooting/) guide to learn what these metrics mean and how to use them to address common broadcast issues.

Jul 22, 2025
1. ### [Audio mode for Media Transformations](https://developers.cloudflare.com/changelog/post/2025-07-22-media-transformations-audio-mode/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
We now support `audio` mode! Use this feature to extract audio from a source video, outputting an M4A file to use in downstream workflows like [AI inference](https://developers.cloudflare.com/workers-ai/), content moderation, or transcription.  
For example,  
Example URL  
```  
https://example.com/cdn-cgi/media/<OPTIONS>/<SOURCE-VIDEO>  
https://example.com/cdn-cgi/media/mode=audio,time=3s,duration=60s/<input video with diction>  
```  
For more information, learn about [Transforming Videos](https://developers.cloudflare.com/stream/transform-videos/).

Jun 10, 2025
1. ### [Increased limits for Media Transformations](https://developers.cloudflare.com/changelog/post/2025-06-10-media-transformations-limits-increase/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
We have increased the limits for [Media Transformations](https://developers.cloudflare.com/stream/transform-videos/):  
   * Input file size limit is now 100MB (was 40MB)  
   * Output video duration limit is now 1 minute (was 30 seconds)  
Additionally, we have improved caching of the input asset, resulting in fewer requests to origin storage even when transformation options may differ.  
For more information, learn about [Transforming Videos](https://developers.cloudflare.com/stream/transform-videos/).

May 14, 2025
1. ### [Introducing Origin Restrictions for Media Transformations](https://developers.cloudflare.com/changelog/post/2025-05-14-media-transformations-origin-restrictions/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
We are adding [source origin restrictions](https://developers.cloudflare.com/stream/transform-videos/sources/) to the Media Transformations beta. This allows customers to restrict what sources can be used to fetch images and video for transformations. This feature is the same as --- and uses the same settings as ---[Image Transformations sources](https://developers.cloudflare.com/images/transform-images/sources/).  
When transformations is first enabled, the default setting only allows transformations on images and media from the same website or domain being used to make the transformation request. In other words, by default, requests to`example.com/cdn-cgi/media` can only reference originals on `example.com`.  
![Enable allowed origins from the Cloudflare dashboard](https://developers.cloudflare.com/_astro/allowed-origins.4hu5lHws_ZsjEgI.webp)  
Adding access to other sources, or allowing any source,[is easy to do](https://developers.cloudflare.com/images/transform-images/sources/)in the **Transformations** tab under **Stream**. Click each domain enabled for Transformations and set its sources list to match the needs of your content. The user making this change will need permission to edit zone settings.  
For more information, learn about [Transforming Videos](https://developers.cloudflare.com/stream/transform-videos/).

Apr 11, 2025
1. ### [Signed URLs and Infrastructure Improvements on Stream Live WebRTC Beta](https://developers.cloudflare.com/changelog/post/2025-04-14-webrtc-beta-signed-urls/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
Cloudflare [Stream](https://developers.cloudflare.com/stream/) has completed an infrastructure upgrade for our [Live WebRTC beta](https://developers.cloudflare.com/stream/webrtc-beta/) support which brings increased scalability and improved playback performance to all customers. WebRTC allows broadcasting directly from a browser (or supported WHIP client) with ultra-low latency to tens of thousands of concurrent viewers across the globe.  
Additionally, as part of this upgrade, the WebRTC beta now supports Signed URLs to protect playback, just like our standard live stream options (HLS/DASH).  
For more information, learn about the [Stream Live WebRTC beta](https://developers.cloudflare.com/stream/webrtc-beta/).

Mar 06, 2025
1. ### [Introducing Media Transformations from Cloudflare Stream](https://developers.cloudflare.com/changelog/post/2025-03-06-media-transformations/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
Today, we are thrilled to announce Media Transformations, a new service that brings the magic of [Image Transformations](https://developers.cloudflare.com/images/transform-images/) to_short-form video files,_ wherever they are stored!  
For customers with a huge volume of short video — generative AI output, e-commerce product videos, social media clips, or short marketing content — uploading those assets to Stream is not always practical. Sometimes, the greatest friction to getting started was the thought of all that migrating. Customers want a simpler solution that retains their current storage strategy to deliver small, optimized MP4 files. Now you can do that with Media Transformations.  
To transform a video or image,[enable transformations](https://developers.cloudflare.com/stream/transform-videos/#getting-started) for your zone, then make a simple request with a specially formatted URL. The result is an MP4 that can be used in an HTML video element without a player library. If your zone already has Image Transformations enabled, then it is ready to optimize videos with Media Transformations, too.  
URL format  
```  
https://example.com/cdn-cgi/media/<OPTIONS>/<SOURCE-VIDEO>  
```  
For example, we have a short video of the mobile in Austin's office. The original is nearly 30 megabytes and wider than necessary for this layout. Consider a simple width adjustment:  
Example URL  
```  
https://example.com/cdn-cgi/media/width=640/<SOURCE-VIDEO>  
https://developers.cloudflare.com/cdn-cgi/media/width=640/https://pub-d9fcbc1abcd244c1821f38b99017347f.r2.dev/aus-mobile.mp4  
```  
The result is less than 3 megabytes, properly sized, and delivered dynamically so that customers do not have to manage the creation and storage of these transformed assets.  
For more information, learn about [Transforming Videos](https://developers.cloudflare.com/stream/transform-videos/).

Feb 14, 2025
1. ### [Rewind, Replay, Resume: Introducing DVR for Stream Live](https://developers.cloudflare.com/changelog/post/2025-02-14-introducing-dvr-for-stream-live/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
Previously, all viewers watched "the live edge," or the latest content of the broadcast, synchronously. If a viewer paused for more than a few seconds, the player would automatically "catch up" when playback started again. Seeking through the broadcast was only available once the recording was available after it concluded.  
Starting today, customers can make a small adjustment to the player embed or manifest URL to enable the DVR experience for their viewers. By offering this feature as an opt-in adjustment, our customers are empowered to pick the best experiences for their applications.  
When building a player embed code or manifest URL, just add `dvrEnabled=true` as a query parameter. There are some things to be aware of when using this option. For more information, refer to [DVR for Live](https://developers.cloudflare.com/stream/stream-live/dvr-for-live/).

Jan 30, 2025
1. ### [Expanded language support for Stream AI Generated Captions](https://developers.cloudflare.com/changelog/post/2025-01-30-stream-generated-captions-new-languages/)  
[ Stream ](https://developers.cloudflare.com/stream/)  
Stream's [generated captions](https://developers.cloudflare.com/stream/edit-videos/adding-captions/#generate-a-caption)leverage Workers AI to automatically transcribe audio and provide captions to the player experience. We have added support for these languages:  
   * `cs` \- Czech  
   * `nl` \- Dutch  
   * `fr` \- French  
   * `de` \- German  
   * `it` \- Italian  
   * `ja` \- Japanese  
   * `ko` \- Korean  
   * `pl` \- Polish  
   * `pt` \- Portuguese  
   * `ru` \- Russian  
   * `es` \- Spanish  
For more information, learn about [adding captions to videos](https://developers.cloudflare.com/stream/edit-videos/adding-captions/).

[Search all changelog entries](https://developers.cloudflare.com/search/?contentType=Changelog+entry) 