<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Stream</title><description>Cloudflare changelogs for Stream</description><link>https://developers.cloudflare.com/changelog/</link><item><title>Stream - Media Transformations binding for Workers</title><link>https://developers.cloudflare.com/changelog/post/2026-03-18-media-transformations-workers-binding/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-03-18-media-transformations-workers-binding/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;The Media Transformations binding is useful when you want to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transform videos stored in private or protected sources&lt;/li&gt;
&lt;li&gt;Optimize videos and store the output directly back to R2 for re-use&lt;/li&gt;
&lt;li&gt;Extract still frames for classification or description with Workers AI&lt;/li&gt;
&lt;li&gt;Extract audio tracks for transcription using Workers AI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To get started, add the Media binding to your Wrangler configuration:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;wrangler.jsonc&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;jsonc&quot;&gt;&lt;code class=&quot;language-jsonc&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;$schema&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;./node_modules/wrangler/config-schema.json&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;media&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;binding&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;MEDIA&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;wrangler.toml&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;toml&quot;&gt;&lt;code class=&quot;language-toml&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;media&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;binding&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;MEDIA&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;  
&lt;p&gt;Then use the binding in your Worker to transform videos:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;JavaScript&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;video&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;R2_BUCKET&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;get&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;input.mp4&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;result&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;MEDIA&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;input&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;video&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;body&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;transform&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;480&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;270&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;output&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; mode&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;video&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; duration&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;5s&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;result&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;ts&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;video&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;R2_BUCKET&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;get&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;input.mp4&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;result&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;MEDIA&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;input&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;video&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;body&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;transform&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;480&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;270&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;output&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; mode&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;video&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; duration&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;5s&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;result&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;  
&lt;p&gt;Output modes include &lt;code&gt;video&lt;/code&gt; for optimized MP4 clips, &lt;code&gt;frame&lt;/code&gt; for still images, &lt;code&gt;spritesheet&lt;/code&gt; for multiple frames, and &lt;code&gt;audio&lt;/code&gt; for M4A extraction.&lt;/p&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/bindings/&quot;&gt;Media Transformations binding documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Stream live inputs can now be disabled and enabled</title><link>https://developers.cloudflare.com/changelog/post/2026-02-24-disable-live-inputs/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-02-24-disable-live-inputs/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This gives you more control over your live inputs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Temporarily pause an input without deleting it&lt;/li&gt;
&lt;li&gt;Programmatically end creator broadcasts&lt;/li&gt;
&lt;li&gt;Prevent new broadcasts from starting on a specific input&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To disable a live input via the API, set the &lt;code&gt;enabled&lt;/code&gt; property to &lt;code&gt;false&lt;/code&gt;:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;curl&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--request&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PUT&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://api.cloudflare.com/client/v4/accounts/{&lt;/span&gt;&lt;span&gt;account_id}/stream/live_inputs/&lt;/span&gt;&lt;span&gt;{input_id}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;--header &lt;/span&gt;&lt;span&gt;&quot;Authorization: Bearer &amp;#x3C;API_TOKEN&gt;&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;--data &lt;/span&gt;&lt;span&gt;&apos;{&quot;enabled&quot;: false}&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;You can also disable or enable a live input from the &lt;strong&gt;Live inputs&lt;/strong&gt; list page
or the live input detail page in the Dashboard.&lt;/p&gt;
&lt;p&gt;All existing live inputs remain enabled by default. For more information, refer
to &lt;a href=&quot;https://developers.cloudflare.com/stream/stream-live/start-stream-live/&quot;&gt;Start a live stream&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Introducing observability and metrics for Stream Live Inputs</title><link>https://developers.cloudflare.com/changelog/post/2025-08-08-stream-live-observability/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-08-08-stream-live-observability/</guid><description>&lt;p&gt;New information about broadcast metrics and events is now available in
&lt;a href=&quot;https://developers.cloudflare.com/stream/&quot;&gt;Cloudflare Stream&lt;/a&gt; in the Live Input details of the Dashboard.&lt;/p&gt;
&lt;starlight-image-zoom-zoomable&gt;&lt;img src=&quot;https://developers.cloudflare.com/_astro/2025-08-05-live-input-metrics.B31Z3RGB_Z3m1Fc.webp&quot; alt=&quot;Live Input details showing metrics&quot;&gt;&lt;/starlight-image-zoom-zoomable&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;To get started, start a live stream (&lt;a href=&quot;https://developers.cloudflare.com/stream/examples/obs-from-scratch/&quot;&gt;just getting started?&lt;/a&gt;), then visit the Live Input details page in Dash.&lt;/p&gt;
&lt;p&gt;See our new live &lt;a href=&quot;https://developers.cloudflare.com/stream/stream-live/troubleshooting/&quot;&gt;Troubleshooting&lt;/a&gt; guide
to learn what these metrics mean and how to use them to address common broadcast
issues.&lt;/p&gt;</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Audio mode for Media Transformations</title><link>https://developers.cloudflare.com/changelog/post/2025-07-22-media-transformations-audio-mode/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-07-22-media-transformations-audio-mode/</guid><description>&lt;p&gt;We now support &lt;code&gt;audio&lt;/code&gt; mode! Use this feature to extract audio from a source video, outputting
an M4A file to use in downstream workflows like &lt;a href=&quot;https://developers.cloudflare.com/workers-ai/&quot;&gt;AI inference&lt;/a&gt;, content moderation, or transcription.&lt;/p&gt;
&lt;p&gt;For example,&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://example.com/cdn-cgi/media/&amp;#x3C;OPTIONS&gt;/&amp;#x3C;SOURCE-VIDEO&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://example.com/cdn-cgi/media/mode=audio,time=3s,duration=60s/&amp;#x3C;input video with diction&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;For more information, learn about &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/&quot;&gt;Transforming Videos&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 22 Jul 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Increased limits for Media Transformations</title><link>https://developers.cloudflare.com/changelog/post/2025-06-10-media-transformations-limits-increase/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-06-10-media-transformations-limits-increase/</guid><description>&lt;p&gt;We have increased the limits for &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/&quot;&gt;Media Transformations&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Input file size limit is now 100MB (was 40MB)&lt;/li&gt;
&lt;li&gt;Output video duration limit is now 1 minute (was 30 seconds)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, we have improved caching of the input asset, resulting in fewer
requests to origin storage even when transformation options may differ.&lt;/p&gt;
&lt;p&gt;For more information, learn about &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/&quot;&gt;Transforming Videos&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Introducing Origin Restrictions for Media Transformations</title><link>https://developers.cloudflare.com/changelog/post/2025-05-14-media-transformations-origin-restrictions/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-05-14-media-transformations-origin-restrictions/</guid><description>&lt;p&gt;We are adding &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/sources/&quot;&gt;source origin restrictions&lt;/a&gt; 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 ---
&lt;a href=&quot;https://developers.cloudflare.com/images/transform-images/sources/&quot;&gt;Image Transformations sources&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;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
&lt;code&gt;example.com/cdn-cgi/media&lt;/code&gt; can only reference originals on &lt;code&gt;example.com&lt;/code&gt;.&lt;/p&gt;
&lt;starlight-image-zoom-zoomable&gt;&lt;img src=&quot;https://developers.cloudflare.com/_astro/allowed-origins.4hu5lHws_ZsjEgI.webp&quot; alt=&quot;Enable allowed origins from the Cloudflare dashboard&quot;&gt;&lt;/starlight-image-zoom-zoomable&gt;
&lt;p&gt;Adding access to other sources, or allowing any source,
&lt;a href=&quot;https://developers.cloudflare.com/images/transform-images/sources/&quot;&gt;is easy to do&lt;/a&gt;
in the &lt;strong&gt;Transformations&lt;/strong&gt; tab under &lt;strong&gt;Stream&lt;/strong&gt;. 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.&lt;/p&gt;
&lt;p&gt;For more information, learn about &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/&quot;&gt;Transforming Videos&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Signed URLs and Infrastructure Improvements on Stream Live WebRTC Beta</title><link>https://developers.cloudflare.com/changelog/post/2025-04-14-webrtc-beta-signed-urls/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-04-14-webrtc-beta-signed-urls/</guid><description>&lt;p&gt;Cloudflare &lt;a href=&quot;https://developers.cloudflare.com/stream/&quot;&gt;Stream&lt;/a&gt; has completed an infrastructure upgrade for our &lt;a href=&quot;https://developers.cloudflare.com/stream/webrtc-beta/&quot;&gt;Live WebRTC beta&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;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).&lt;/p&gt;
&lt;p&gt;For more information, learn about the &lt;a href=&quot;https://developers.cloudflare.com/stream/webrtc-beta/&quot;&gt;Stream Live WebRTC beta&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 11 Apr 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Introducing Media Transformations from Cloudflare Stream</title><link>https://developers.cloudflare.com/changelog/post/2025-03-06-media-transformations/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-03-06-media-transformations/</guid><description>&lt;p&gt;Today, we are thrilled to announce Media Transformations, a new service that
brings the magic of &lt;a href=&quot;https://developers.cloudflare.com/images/transform-images/&quot;&gt;Image Transformations&lt;/a&gt; to
&lt;em&gt;short-form video files,&lt;/em&gt; wherever they are stored!&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;To transform a video or image,
&lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/#getting-started&quot;&gt;enable transformations&lt;/a&gt; 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.&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://example.com/cdn-cgi/media/&amp;#x3C;OPTIONS&gt;/&amp;#x3C;SOURCE-VIDEO&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;For example, we have a short video of the mobile in Austin&apos;s office. The
original is nearly 30 megabytes and wider than necessary for this layout.
Consider a simple width adjustment:&lt;/p&gt;

&lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://example.com/cdn-cgi/media/width=640/&amp;#x3C;SOURCE-VIDEO&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;https://developers.cloudflare.com/cdn-cgi/media/width=640/https://pub-d9fcbc1abcd244c1821f38b99017347f.r2.dev/aus-mobile.mp4&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;For more information, learn about &lt;a href=&quot;https://developers.cloudflare.com/stream/transform-videos/&quot;&gt;Transforming Videos&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 06 Mar 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Rewind, Replay, Resume: Introducing DVR for Stream Live</title><link>https://developers.cloudflare.com/changelog/post/2025-02-14-introducing-dvr-for-stream-live/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-02-14-introducing-dvr-for-stream-live/</guid><description>&lt;p&gt;Previously, all viewers watched &quot;the live edge,&quot; or the latest content of the
broadcast, synchronously. If a viewer paused for more than a few seconds,
the player would automatically &quot;catch up&quot; when playback started again. Seeking
through the broadcast was only available once the recording was available after
it concluded.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;When building a player embed code or manifest URL, just add &lt;code&gt;dvrEnabled=true&lt;/code&gt; as
a query parameter. There are some things to be aware of when using this option.
For more information, refer to &lt;a href=&quot;https://developers.cloudflare.com/stream/stream-live/dvr-for-live/&quot;&gt;DVR for Live&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item><item><title>Stream - Expanded language support for Stream AI Generated Captions</title><link>https://developers.cloudflare.com/changelog/post/2025-01-30-stream-generated-captions-new-languages/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-01-30-stream-generated-captions-new-languages/</guid><description>&lt;p&gt;Stream&apos;s &lt;a href=&quot;https://developers.cloudflare.com/stream/edit-videos/adding-captions/#generate-a-caption&quot;&gt;generated captions&lt;/a&gt;
leverage Workers AI to automatically transcribe audio and provide captions to
the player experience. We have added support for these languages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cs&lt;/code&gt; - Czech&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nl&lt;/code&gt; - Dutch&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fr&lt;/code&gt; - French&lt;/li&gt;
&lt;li&gt;&lt;code&gt;de&lt;/code&gt; - German&lt;/li&gt;
&lt;li&gt;&lt;code&gt;it&lt;/code&gt; - Italian&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ja&lt;/code&gt; - Japanese&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ko&lt;/code&gt; - Korean&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pl&lt;/code&gt; - Polish&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pt&lt;/code&gt; - Portuguese&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ru&lt;/code&gt; - Russian&lt;/li&gt;
&lt;li&gt;&lt;code&gt;es&lt;/code&gt; - Spanish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information, learn about &lt;a href=&quot;https://developers.cloudflare.com/stream/edit-videos/adding-captions/&quot;&gt;adding captions to videos&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate><product>Stream</product><category>Stream</category></item></channel></rss>