-
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
Merged
+68
−0
Merged
Changes from 6 commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
99cad4a
[stream] troubleshooting
ToriLindsay 43a8809
[Stream] live stream troubleshooting guide
ToriLindsay e17da1d
Added error code section
ToriLindsay d2ee5e8
Add descriptions of terms
ToriLindsay ba7a4fb
Update src/content/docs/stream/stream-live/troubleshooting.mdx
ToriLindsay 3f5e64b
Update src/content/docs/stream/stream-live/troubleshooting.mdx
ToriLindsay ca055e2
Update src/content/docs/stream/stream-live/troubleshooting.mdx
ToriLindsay 4b021f2
[Stream]: Some edits re basic troubleshooting for live
tsmith512 598ef3a
Fixed typos and grammar, rearranged for better flow
ToriLindsay 5999105
[Stream] Minor tweaks
tsmith512 84cb173
[Stream] Remove Live event log for now, need to revise before publishing
tsmith512 e6ee565
[Stream] CHangelog, adjust nav pattern, add article
tsmith512 47e0f42
Adjustments suggested by @nikitacano
tsmith512 ea32098
Update date
tsmith512 bfbfdae
Wording tweaks
ToriLindsay 90a0b2f
Update src/content/changelog/stream/2025-08-06-stream-live-observabil…
ToriLindsay a1153c3
Update src/content/changelog/stream/2025-08-06-stream-live-observabil…
ToriLindsay 0ae6d94
Fix rollout date
tsmith512 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| --- | ||
| pcx_content_type: troubleshooting | ||
| title: Troubleshooting 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, switching in quality levels, or having other similar issues, try these troubleshooting steps: | ||
|
|
||
| <Steps> | ||
| 1. Go to the [Cloudflare dashboard](https://dash.cloudflare.com) > **Stream** > **Analytics**. | ||
|
|
||
| 2. Look at your **Keyframe Interval** chart. | ||
|
|
||
| It should be a consistent flat line that stays between 2s and 6s. If instead you see an inconsistent or wavy line a line, or a line that is consistently below 2s or above 6s, edit the keyframe interval (also called GOP interval) in your software or service used send the stream to Cloudflare. The exact steps for editing those settings will depend on your platform. | ||
| * If the keyframe interval or GOP interval is below 2s, raise it to 2s. | ||
| * If it is above 4s, lower it to 4s. | ||
| * If the keyframe interval is "variable", change it to a specific number, like 4s. | ||
|
|
||
| <Details header="What is a keyframe interval?"> | ||
| The keyframe interval (also called GOP) is a measurement of how often keyframes are sent to Stream. A shorter keyframe is less likely to cause buffering or freezing, but requires more internet bandwidth. A longer keyframe is more likely to cause buffering or freezing, but requires less internet bandwidth. | ||
| </Details> | ||
|
|
||
| 3. Look at your **Upload-to-Duration Ratio** chart. | ||
|
|
||
| It should be a consistent flat line between 50% and 70%. If instead you see an inconsistent or wavy line, or a line that is consistently below 50% or above 70%, try the following troubleshooting steps: | ||
|
|
||
| * Check that your internet speed upload bandwidth is between 2Mbps and 12Mbps. | ||
| * If it is below 2Mbps, your internet connection is very slow. Use common troubleshooting steps such as restarting your router, using an Ethernet connection instead of Wi-Fi, or contacting your internet service provider. | ||
| * If it is above 12Mbps, try adjusting your video bitrate to be between 50% and 70% of your internet speed. To do so, edit the bitrate setting in your software or service you use to send the stream to Cloudflare. If the bitrate is "variable", change it to a specific number between 50% and 70% of your internet speed. | ||
| <br/> | ||
| * Follow the steps above (in step 2) to edit the keyframe interval in the software or service you use to send the stream to Cloudflare. | ||
|
|
||
| <Details header="What is an upload-to-duration ratio?"> | ||
| The upload-to-duration ratio is a measurement of your video duration relative to how fast it is taking to upload. A ratio of 50% to 70% means that your video is uploading faster than its duration, and should not experience buffering or freezing. A ratio of 100% or more means that your video length is longer than the speed it is taking to upload, and is likely to experience buffering and freezing. A ratio of less than 50% means that your video is uploading much faster than its duration, but may require more internet bandwidth, which can also lead to buffering and freezing. | ||
| </Details> | ||
| </Steps> | ||
|
|
||
| ## Event error codes | ||
|
|
||
| This guide can help you troubleshoot the following error codes received while live streaming videos: | ||
| * `INPUT_CONNECTION_ERROR` — An error occurred while reading the input connection. | ||
| * `STREAM_FAILED_TO_START` — An error occurred while starting the live stream. | ||
| * `TIMEOUT_READING_FROM_INPUT` — Timeout waiting for packet, stream is stopping. | ||
| * `UNEXPECTED_FRAME_TYPE` — Expected IDR keyframe but received a different frame type. | ||
| * `INPUT_FORCE_DISCONNECTED` — Your live input was forcefully disconnected. | ||
|
|
||
| For a full list of events, go to the [Cloudflare dashboard](https://dash.cloudflare.com) > **Stream** > **Logs**. | ||
|
|
||
| If you subscribe to webhooks, instead see [webhook error codes for on demand videos](/stream/manage-video-library/using-webhooks/#error-codes) and [webhook error codes for live stream](/stream/stream-live/webhooks/#error-codes). | ||
|
|
||
| If you receive any of the above error codes while live streaming videos: | ||
| <Steps> | ||
| 1. | ||
| 2. | ||
| 3. | ||
| </Steps> | ||
| If you are still receiving error codes, [contact support](/support/contacting-cloudflare-support/). | ||
|
|
||
|
|
||
|
|
||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.