Skip to content
Merged
Changes from 4 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
68 changes: 68 additions & 0 deletions src/content/docs/stream/stream-live/troubleshooting.mdx
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) 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 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/).




Loading