-
Notifications
You must be signed in to change notification settings - Fork 9.9k
[Stream] live stream troubleshooting guide #23829
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 12 commits
99cad4a
43a8809
e17da1d
d2ee5e8
ba7a4fb
3f5e64b
ca055e2
4b021f2
598ef3a
5999105
84cb173
e6ee565
47e0f42
ea32098
bfbfdae
90a0b2f
a1153c3
0ae6d94
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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 | ||
| Stream in the Live Input details of the Dashboard. | ||
|
|
||
|  | ||
|
|
||
| This observability can aid troubleshooting and improving quality, particularly | ||
|
||
| 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. | ||
| 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> |
There was a problem hiding this comment.
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.