故障排查

更新时间:2026-07-10 17:27:20

本文介绍如何排查 CDNetworks Media Acceleration Live Broadcast 中常见的推流和播放问题。请先选择与实际现象最相符的章节,依次完成检查;如果问题仍未解决,请收集相关信息并联系 CDNetworks 技术支持。

Table of Contents

推流问题

无法发布直播流

1. 检查 DNS 和 CNAME 配置

添加推流域名后,CDNetworks 会为该域名分配一个 CNAME 目标域名。请在 DNS 服务商处为推流域名添加相应的 CNAME 记录。

  • 使用 DNS 查询工具确认推流域名已解析到 CDNetworks 分配的 CNAME 目标域名。
  • 如果域名无法解析或指向其他地址,请修正 DNS 记录,并等待 DNS 变更生效。

2. 检查编码器设置

确认编码器中填写了正确的服务器 URL 和推流密钥。以 OBS Studio 及同类编码器为例:

  • Server 包含推流域名和 AppName。
  • Stream Key 包含 StreamName 和所有查询字符串参数。
  • 如果启用了 URL 鉴权,请添加所有必需的鉴权参数。例如,时间戳鉴权可能需要 wsTimewsSecret

如果条件允许,请使用其他编码器进行对比测试,以判断问题是否来自原编码器或其配置。

3. 检查音视频格式

直播通常使用 H.264 视频编码和 AAC 音频编码。可以使用 FFmpeg 检查直播流:

ffmpeg -i "rtmp://<推流域名>/<app-name>/<stream-name>"

请将占位符替换为实际的推流域名、AppName 和 StreamName,并检查输出信息中的编码格式以及连接、鉴权或解码错误。

4. 检查是否存在重复推流

同一 AppName 下,两个发布端不能同时使用相同的 StreamName 推流。如果编码器提示 Server error: Failed to publish,请确认是否有其他编码器或进程正在发布相同的直播流,然后重试。

5. 检查 URL 鉴权

启用 URL 鉴权后,推流 URL 必须包含有效且未过期的鉴权参数。参数缺失、拼写错误、无效或过期,都可能导致推流失败并出现 I/O error。请检查 wsTimewsSecret 等参数;如有必要,请重新生成鉴权 URL。

6. 检查推流是否被禁止

在控制台的流禁播任务列表中,检查该直播流或发布端 IP 地址是否被禁止推流。如果需要恢复推流,请遵循组织内部的变更流程,或联系具有相应权限的管理员。

7. 检查发布端网络

  • 使用 DNS 查询工具确认推流域名能够正常解析。
  • 检查发布端与推流域名之间是否存在丢包或时延波动。
  • 使用 RTMP 时,检查是否能够连接推流域名的 TCP 1935 端口。
  • 确认发布端的上行带宽稳定,并且能够满足当前码率要求。

如果连接测试失败,请检查本地防火墙、代理、路由和 ISP 限制。

播放问题

直播流无法播放或返回 404

1. 检查播放 URL

播放 URL 通常包含分发域名、AppName 和 StreamName。URL 路径和扩展名因协议而异,例如:

rtmp://play.example.com/app/stream
https://play.example.com/app/stream.flv
https://play.example.com/app/stream/playlist.m3u8

请检查域名、AppName、StreamName、协议、路径、扩展名和字母大小写。如果启用了鉴权,还需要确认所有必需参数均已添加且未过期。

2. 检查 DNS 和 CNAME 配置

使用 DNS 查询工具确认播放域名已解析到 CDNetworks 分配的 CNAME 目标域名。如果没有,请修正 DNS 记录或联系 DNS 管理员。

3. 确认推流正常

如果源流未发布,播放将会失败。请确认编码器已连接并持续发送数据,然后按照无法发布直播流中的步骤完成检查。

4. 使用其他播放器测试

使用支持当前播放协议的其他播放器进行测试。如果直播流可以在其他播放器中正常播放,请检查原播放器支持的协议、媒体编码格式及其配置。

对于基于浏览器的播放,请在浏览器控制台中检查跨域错误。当播放器页面和直播流来自不同源时,播放响应必须包含所需的 CORS 响应头。

5. 检查观众端网络

使用其他设备或网络进行对比测试。如果只有一名观众受到影响,请检查该观众的网络连接、防火墙、代理、浏览器和播放器环境。

播放卡顿或频繁缓冲

请按照从推流到播放的顺序进行检查:

  1. 确认发布端上行网络稳定,并且能够持续满足当前码率要求。
  2. 检查编码器的 CPU 和硬件使用率。如果编码器负载过高,请降低码率、分辨率或帧率后重新测试。
  3. 确认配置的帧率适合当前内容。帧率过低会导致画面明显不流畅。
  4. 使用其他设备、播放器和网络进行对比测试。
  5. 检查播放器的缓冲配置。增大缓冲区可以提高抗网络波动能力,但可能增加播放延迟。

画面模糊

  1. 推流前确认源画面清晰。
  2. 查看推流分析数据,检查码率、帧率、分辨率或直播流错误是否存在异常。
  3. 确认编码器没有因硬件或网络限制而自动降低码率或分辨率。
  4. 检查推流期间直播流的元数据是否发生变化。异常变化可能影响后续处理。
  5. 使用其他播放器进行测试。如果播放器支持,请分别使用软解码和硬解码进行对比。

播放意外中断

  1. 确认推流是否在同一时间中断。如果推流也已中断,请先排查发布端及其网络。
  2. 确认问题仅影响一名观众、同一网络中的观众,还是不同地区的多名观众。
  3. 使用其他播放器、设备和网络进行测试。
  4. 记录需要收集的信息中列出的故障信息。

RTMP 和 HTTP-FLV 可以播放,但 HLS 播放失败

  1. 使用 FFmpeg 或 FFplay 检查直播流,并记录编码、时间戳或封装错误。
  2. 确认音视频编码格式与目标 HLS 播放器兼容。
  3. 请管理员确认源站 Host 请求头或回源 Host 配置正确。
  4. 再次检查 HLS URL、鉴权参数和播放器兼容性。

HLS 有画面但没有声音

检查源流的音频编码,并确认目标 HLS 播放器支持该编码。使用 RTMP 或 HTTP-FLV 播放同一直播流进行对比。如果只有 HLS 没有声音,请使用 AAC 音频编码重新测试。

需要收集的信息

如果问题仍未解决,请向 CDNetworks 技术支持提供以下信息:

  • 推流 URL 和播放 URL,并隐藏密钥和鉴权签名
  • 域名、AppName 和 StreamName
  • 使用的协议,以及播放器或编码器的名称和版本
  • 故障发生的大致时间和时区
  • 问题影响推流、播放,还是两者均受影响
  • 问题影响一名观众还是多名观众
  • 受影响观众的公网 IP 地址(仅在适当且获得允许的情况下提供)
  • 编码器或播放器的错误信息和相关日志
  • 使用其他播放器、设备、编码器或网络时的测试结果
  • FFmpeg 或 FFplay 输出(如有)

请勿提供未经隐藏处理的登录凭据、推流密钥、Token 或鉴权密钥。

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!