Changelog (31)

Last updated Apr 21, 2026

2026-04-13

HLS manifests now reference fragmented MP4 segments

On-demand HLS manifests now reference fragmented MP4 (.mp4) segments for video and audio, replacing the previous MPEG-TS (.ts) segments. HLS manifest URLs have not changed.

This change has been transparent to the majority of customers. If you use a third-party player or cache HLS manifests, refresh your cached manifests to pick up the updated segment references. Players that fetch manifests fresh on each playback session are unaffected. To ensure best performance, we recommend that you do not cache HLS/DASH manifests outside of Stream. Old segment references may result in 404 errors after 2026-05-13.

For more information, refer to Use your own player.

2025-03-12

Stream Live WebRTC WHIP/WHEP Upgrades

Stream Live WHIP/WHEP will be progressively migrated to a new implementation powered by Cloudflare Realtime (Calls) starting Thursday 2025-03-13. No API or integration changes will be required as part of this upgrade. Customers can expect an improved playback experience. Otherwise, this should be a transparent change, although some error handling cases and status reporting may have changed.

For more information review the Stream Live WebRTC beta documentation.

2025-02-10

Stream Player ad support adjustments for Google Ad Exchange Verification

Adjustments have been made to the Stream player UI when playing advertisements called by a customer-provided VAST or VMAP ad-url argument:

A small progress bar has been added along the bottom of the player, and the shadow behind player controls has been reduced. These changes have been approved for use with Google Ad Exchange.

This only impacts customers using the built-in Stream player and calling their own advertisements; Stream never shows ads by default. For more information, refer to Using the Stream Player.

2025-01-30

Expanded Language Support for Generated Captions

Eleven new languages are now supported for transcription when using generated captions, available for free for video stored in Stream.

2024-08-15

Full HD encoding for Portrait Videos

Stream now supports full HD encoding for portrait/vertical videos. Videos with a height greater than their width will now be constrained and prepared for adaptive bitrate renditions based on their width. No changes are required to benefit from this update. For more information, refer to the announcement.

2024-08-09

Hide Viewer Count in Live Streams

A new property hideLiveViewerCount has been added to Live Inputs to block access to the count of viewers in a live stream and remove it from the player. For more information, refer to Start a Live Stream.

2024-07-23

New Live Webhooks for Error States

Stream has added a new notification event for Live broadcasts to alert (via email or webhook) on various error conditions including unsupported codecs, bad GOP/keyframe interval, or quota exhaustion.

When creating/editing a notification, subscribe to live_input.errored to receive the new event type. Existing notification subscriptions will not be changed automatically. For more information, refer to Receive Live Webhooks.

2024-06-20

Generated Captions to Open beta

Stream has introduced automatically generated captions to open beta for all subscribers at no additional cost. While in beta, only English is supported and videos must be less than 2 hours. For more information, refer to the product announcement and deep dive or refer to the captions documentation to get started.

2024-06-11

Updated response codes on requests for errored videos

Stream will now return HTTP error status 424 (failed dependency) when requesting segments, manifests, thumbnails, downloads, or subtitles for videos that are in an errored state. Previously, Stream would return one of several 5xx codes for requests like this.

2024-04-11

Live Instant Clipping for live broadcasts and recordings

Clipping is now available in open beta for live broadcasts and recordings. For more information, refer to Live instant clipping documentation.

2024-02-16

Tonemapping improvements for HDR content

In certain cases, videos uploaded with an HDR colorspace (such as footage from certain mobile devices) appeared washed out or desaturated when played back. This issue is resolved for new uploads.

2023-11-07

HLS improvements for on-demand TS output

HLS output from Cloudflare Stream on-demand videos that use Transport Stream file format now includes a 10 second offset to timestamps. This will have no impact on most customers. A small percentage of customers will see improved playback stability. Caption files were also adjusted accordingly.

2023-10-10

SRT Audio Improvements

In some cases, playback via SRT protocol was missing an audio track regardless of existence of audio in the broadcast. This issue is now resolved.

2023-09-25

LL-HLS Beta

Low-Latency HTTP Live Streaming (LL-HLS) is now in open beta. Enable LL-HLS on your live input for automatic low-latency playback using the Stream built-in player where supported.

For more information, refer to live input and custom player docs.

2023-08-08

Scheduled Deletion

Stream now supports adding a scheduled deletion date to new and existing videos. Live inputs support deletion policies for automatic recording deletion.

For more, refer to the video on demand or live input docs.

2023-05-16

Multiple audio tracks now generally available

Stream supports adding multiple audio tracks to an existing video.

For more, refer to the documentation to get started.

2023-04-26

Player Enhancement Properties

Cloudflare Stream now supports player enhancement properties.

With player enhancements, you can modify your video player to incorporate elements of your branding, such as your logo, and customize additional options to present to your viewers.

For more, refer to the documentation to get started.

2023-03-21

Limits for downloadable MP4s for live recordings

Previously, generating a download for a live recording exceeding four hours resulted in failure.

To fix the issue, now video downloads are only available for live recordings under four hours. Live recordings exceeding four hours can still be played but cannot be downloaded.

2023-01-04

Earlier detection (and rejection) of non-video uploads

Cloudflare Stream now detects non-video content on upload using the POST API and returns a 400 Bad Request HTTP error with code 10059.

Previously, if you or one of your users attempted to upload a file that is not a video (ex: an image), the request to upload would appear successful, but then fail to be encoded later on.

With this change, Stream responds to the upload request with an error, allowing you to give users immediate feedback if they attempt to upload non-video content.

2022-12-08

Faster mp4 downloads of live recordings

Generating MP4 downloads of live stream recordings is now significantly faster. For more, refer to the docs.

2022-11-29

Multiple audio tracks (closed beta)

Stream now supports adding multiple audio tracks to an existing video upload. This allows you to:

  • Provide viewers with audio tracks in multiple languages
  • Provide dubbed audio tracks, or audio commentary tracks (ex: Director’s Commentary)
  • Allow your users to customize the customize the audio mix, by providing separate audio tracks for music, speech or other audio tracks.
  • Provide Audio Description tracks to ensure your content is accessible. (WCAG 2.0 Guideline 1.2 1)

To request an invite to the beta, refer to this post.

2022-11-22

VP9 support for WebRTC live streams (beta)

Cloudflare Stream now supports VP9 when streaming using WebRTC (WHIP), currently in beta.

2022-11-08

Reduced time to start WebRTC streaming and playback with Trickle ICE

Cloudflare Stream's WHIP and WHEP implementations now support Trickle ICE, reducing the time it takes to initialize WebRTC connections, and increasing compatibility with WHIP and WHEP clients.

For more, refer to the docs.

2022-11-07

Deprecating the 'per-video' Analytics API

The “per-video” analytics API is being deprecated. If you still use this API, you will need to switch to using the GraphQL Analytics API by February 1, 2023. After this date, the per-video analytics API will be no longer available.

The GraphQL Analytics API provides the same functionality and more, with additional filters and metrics, as well as the ability to fetch data about multiple videos in a single request. Queries are faster, more reliable, and built on a shared analytics system that you can use across many Cloudflare products.

For more about this change and how to migrate existing API queries, refer to this post and the GraphQL Analytics API docs.

2022-11-01

Create an unlimited number of live inputs

Cloudflare Stream now has no limit on the number of live inputs you can create. Stream is designed to allow your end-users to go live — live inputs can be created quickly on-demand via a single API request for each of user of your platform or app.

For more on creating and managing live inputs, get started with the docs.

2022-10-20

More accurate bandwidth estimates for live video playback

When playing live video, Cloudflare Stream now provides significantly more accurate estimates of the bandwidth needs of each quality level to client video players. This ensures that live video plays at the highest quality that viewers have adequate bandwidth to play.

As live video is streamed to Cloudflare, we transcode it to make it available to viewers at multiple quality levels. During transcoding, we learn about the real bandwidth needs of each segment of video at each quality level, and use this to provide an estimate of the bandwidth requirements of each quality level the in HLS (.m3u8) and DASH (.mpd) manifests.

If a live stream contains content with low visual complexity, like a slideshow presentation, the bandwidth estimates provided in the HLS manifest will be lower, ensuring that the most viewers possible view the highest quality level, since it requires relatively little bandwidth. Conversely, if a live stream contains content with high visual complexity, like live sports with motion and camera panning, the bandwidth estimates provided in the HLS manifest will be higher, ensuring that viewers with inadequate bandwidth switch down to a lower quality level, and their playback does not buffer.

This change is particularly helpful if you're building a platform or application that allows your end users to create their own live streams, where these end users have their own streaming software and hardware that you can't control. Because this new functionality adapts based on the live video we receive, rather than just the configuration advertised by the broadcaster, even in cases where your end users' settings are less than ideal, client video players will not receive excessively high estimates of bandwidth requirements, causing playback quality to decrease unnecessarily. Your end users don't have to be OBS Studio experts in order to get high quality video playback.

No work is required on your end — this change applies to all live inputs, for all customers of Cloudflare Stream. For more, refer to the docs.

2022-10-05

AV1 Codec support for live streams and recordings (beta)

Cloudflare Stream now supports playback of live videos and live recordings using the AV1 codec, which uses 46% less bandwidth than H.264.

For more, read the blog post.