跳转到内容
搜索文档

直播故障排除

最后更新 查看 MarkdownAgent 设置

除遵循本指南中的直播故障排除步骤外,请确保您的视频设置符合 Cloudflare 直播建议。如果您使用 OBS,还可以查看这些 OBS 特定建议

缓冲、冻结和延迟

如果您的直播出现缓冲、冻结、延迟问题或其他类似问题,请尝试以下故障排除步骤:

  1. 在 Cloudflare 仪表板中,前往 Live inputs(直播输入) 页面。

    Go to Live inputs ↗
  2. 对于正在使用的直播输入,选择 Metrics(指标) 选项卡。

  3. 查看 Keyframe Interval(关键帧间隔) 图表。

    它应是一条一致的平线,保持在 2s 到 8s 之间。如果您看到不一致或波浪形的线,或一条始终低于 2s 或高于 8s 的线,请在用于向 Cloudflare 发送流的软件或服务中调整关键帧间隔(也称为 GOP 大小)。编辑这些设置的确切步骤取决于您的平台。

    • 首先将关键帧间隔设为 4s。如果播放稳定但延迟仍然过高,将其降低到 2s。如果您在播放中遇到缓冲或冻结,将其增加到 8s。

    • 如果关键帧间隔为 "variable" 或 "automatic",请将其更改为特定数值,如 4s。

    什么是关键帧间隔?

    关键帧间隔(也称为 GOP 大小)是衡量向 Stream 发送关键帧频率的指标。较短的关键帧间隔需要广播端更多 Internet 带宽,但可以减少 glass-to-glass 延迟。较长的关键帧需要较少 Internet 带宽,可以减少缓冲和冻结,但可能增加 glass-to-glass 延迟。

  4. 查看 Upload-to-Duration Ratio 图表。

    它应是一条始终低于 90% 的一致平线。如果您看到不一致或波浪形的线,或一条始终高于 100% 的线,请尝试以下故障排除步骤:

    • 检查您的 Internet 上传速度 是否至少为 20 Mbps。如果低于 20 Mbps,请使用常见故障排除步骤,如重启路由器、使用以太网连接而非 Wi-Fi,或联系您的 Internet 服务提供商。

    • 检查用于向 Cloudflare 发送流的软件或服务中的视频码率设置。

      • 如果为 "variable",将其更改为 "constant" 并指定数值,如 8 Mbps。
      • 如果高于 15 Mbps,将其降低到 8 Mbps 或您 Internet 速度的 70%,取较低者。
    • 按照上述步骤(关键帧间隔步骤)增加 用于向 Cloudflare 发送流的软件或服务中的关键帧间隔。

    什么是 upload-to-duration ratio?

    Upload-to-duration ratio 衡量上传流的一部分所需时间与该部分播放所需时间的比较。低于 100% 的比率意味着流上传速度至少与播放速度一样快,因此大多数用户不应遇到缓冲或冻结。100% 或更高的比率意味着视频上传速度比播放慢,因此大多数用户可能会遇到缓冲和冻结。

编码器连接失败或反复断开

如果编码器显示连接错误(如 "Failed to connect to server")或在启动后很快反复断开,请尝试以下操作:

  • 验证 RTMPS URL、stream key 和编码器软件是否正确复制到广播软件中。

  • 验证直播输入是否已启用。已禁用 的直播输入将拒绝所有传入连接。您可以从仪表板的 Live inputs(直播输入) 页面或通过 API 使用 enabled 属性启用或禁用直播输入。

    Go to Live inputs ↗
    curl -X GET \
    --header "Authorization: Bearer <API_TOKEN>" \
    https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id}

    如果响应中 enabledfalse,请更新直播输入以启用它:

    curl --request PUT \
    https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \
    --header "Authorization: Bearer <API_TOKEN>" \
    --data '{"enabled": true}'
  • 如果您使用 Live Webhooks,请检查 live_input.errored 事件。webhook 负载包含 错误代码,可帮助您排查具体原因。

已连接但播放器显示 "Stream has not started yet"

如果编码器已连接且仪表板显示绿色 Connected(已连接) 状态和有效指标,但播放器预览显示 Stream has not started yet,请尝试以下操作:

  • 等待三十秒。编码器连接与流变为可播放之间存在短暂延迟。

  • 重启流以清除初始连接的任何错误状态。

  • 验证编码器是否发送 AAC 音频。如果没有,请在编码器设置中明确设为 AAC。

  • 验证编码器是否以两秒到八秒之间的固定间隔发送关键帧。如果关键帧间隔设为 variableautomatic,请将其更改为特定值(如四秒)。更多详情,请参阅上方 缓冲、冻结和延迟 部分中的关键帧信息。

这篇文档对您有帮助吗?