Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Introducing observability and metrics for Stream Live Inputs
description: >
Use new observability on Stream Live Inputs to better understand broadcast-side
health and performance, now available easily in Dash and programmatically via
GraphQL.
date: 2025-08-05
---

New information about broadcast metrics and events is now available in Cloudflare
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would link to Stream docs directly from here as well.

Stream in the Live Input details of the Dashboard.

![Live Input details showing metrics](~/assets/images/changelog/stream/2025-08-05-live-input-metrics.png)

This observability can aid troubleshooting and improving quality, particularly
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the ideal world, we lead with what users can now do: "You can now easily understand broadcast-side health and performance..."

Your description already does this, so I would suggest using similar language here as well.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good framing, thanks!

for new customers who are just getting started as well as platform customers who
may have limited knowledge on how their end-users configure their encoders.

To get started, start a live stream ([just getting started?](/stream/examples/obs-from-scratch/)), then visit the Live Input details page in Dash.

See our new live [Troubleshooting](/stream/stream-live/troubleshooting/) guide
to learn what these metrics mean and how to use them to address common broadcast
issues.
44 changes: 44 additions & 0 deletions src/content/docs/stream/stream-live/troubleshooting.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
pcx_content_type: troubleshooting
title: Troubleshooting a live stream
sidebar:
order: 12

---
import { Steps, Details } from "~/components"

In addition to following the live stream troubleshooting steps in this guide, make sure that your video settings align with [Cloudflare live stream recommendations](/stream/stream-live/start-stream-live/#recommendations-requirements-and-limitations). If you use OBS, you can also check these [OBS-specific recommendations](/stream/examples/obs-from-scratch/#6-optional-optimize-settings).

## Buffering, freezing, and latency

If your live stream is buffering, freezing, experiencing latency issues, or having other similar issues, try these troubleshooting steps:

<Steps>
1. Go to the [Cloudflare dashboard](https://dash.cloudflare.com) > **Stream** > **Live Inputs**. Locate the Live Input in use and click on it, then click on the **Metrics** tab.

2. Look at your **Keyframe Interval** chart.

It should be a consistent flat line that stays between 2s and 8s. If you see an inconsistent or wavy line, or a line that is consistently below 2s or above 8s, adjust the keyframe interval (also called GOP size) in your software or service used to send the stream to Cloudflare. The exact steps for editing those settings will depend on your platform.
* Start by setting the keyframe interval to 4s. If playback is stable but latency is still too high, lower it to 2s. If you are experiencing buffering or freezing in playback, increase it to 8s.

* If the keyframe interval is "variable" or "automatic", change it to a specific number instead, like 4s.

<Details header="What is a keyframe interval?">
The keyframe interval (also called GOP size) is a measurement of how often keyframes are sent to Stream. A shorter keyframe interval requires more internet bandwidth on the broadcast side, but can reduce glass-to-glass latency. A longer keyframe can reduce buffering and freezing at the expense of increasing glass-to-glass latency, and it requires less bandwidth.
</Details>

3. Look at your **Upload-to-Duration Ratio** chart.

It should be a consistent flat line below 90%. If you see an inconsistent or wavy line, or a line that is consistently above 100%, try the following troubleshooting steps:
* [Check that your internet upload speed](https://speed.cloudflare.com/) is at least 20 Mbps. If it is below 20 Mbps, use common troubleshooting steps such as restarting your router, using an Ethernet connection instead of Wi-Fi, or contacting your internet service provider.

* Check the video bitrate setting in the software or service you use to send the stream to Cloudflare.
* If it is "variable", change it to "constant" with a specific number, like 8 Mbps.
* If it is above 15 Mbps, lower it to 8 Mbps or 70% of your internet speed, whichever is lower.

* Follow the steps above (in step 2) to _increase_ the keyframe interval in the software or service you use to send the stream to Cloudflare.

<Details header="What is the upload-to-duration ratio?">
The upload-to-duration ratio is a measurement of how long it takes to upload a part of your stream compared to how long that part would take to play. A ratio of less than 100% means that your stream is uploading at least as fast as it would take to play, so it should not experience buffering or freezing for most users. A ratio of 100% or more means that your video is uploading slower than it would take to play, so it is likely that most users will experience buffering and freezing.
</Details>
</Steps>