更新时间:2026-10-19 14:40:57
本文介绍如何排查互动直播的推流和播放问题。请先查看与故障现象对应的章节。如果问题仍未解决,请收集文末列出的信息并联系 CDNetworks 技术支持。
使用 DNS 查询工具,确认推流域名已解析到 CDNetworks 分配的 CNAME 目标域名。如果域名无法解析或指向其他地址,请在 DNS 服务商处修正记录,并等待变更生效。
检查推流域名、发布点、流名、协议和端口。以 OBS Studio 及同类编码器为例:
rtmp://push.example.com/live。demo。确认域名配置允许使用该发布点。如有条件,请使用其他编码器进行对比测试。
检查编码器的输出编码。直播通常使用 H.264 视频编码和 AAC 音频编码,同时还需要确认输出与所用直播协议及目标播放器兼容。
如果已有可访问的源流或播放地址,可以使用 FFmpeg 项目提供的 FFprobe 查看编码信息:
ffprobe -hide_banner "<源流或播放地址>"
将占位符替换为可访问的源流地址或拉流地址;如需鉴权,请添加相应参数。仅用于接收推流的地址不能作为播放地址。如果尚未开始推流,请检查编码器设置或本地录制文件。
如果已有发布端使用相同的发布点和流名,新推流会话可能无法建立。编码器提示 Server error: Failed to publish 时,请检查是否有其他编码器或进程正在发布该直播流。停止重复会话,或使用其他流名测试。
启用鉴权后,推流地址必须包含有效且未过期的鉴权参数。请检查参数名称和值,必要时重新生成地址。同时确认 IP 等访问规则允许当前发布端的请求。仅凭 I/O error 无法确定具体原因。
配置说明请参见访问控制。
在控制台中检查是否有生效中的禁播任务作用于该直播流或发布端 IP。如果禁播不符合预期,请联系具有相应权限的管理员解除后重试。
播放地址包含拉流域名、发布点和流名,路径及扩展名因协议而异:
rtmp://play.example.com/app/stream
https://play.example.com/app/stream.flv
https://play.example.com/app/stream/playlist.m3u8
检查域名、发布点、流名、协议、路径、扩展名及字母大小写。如果使用 HTTPS,请确认拉流域名已配置有效证书。
如果启用了鉴权,请确认所需参数完整且未过期。对于 HLS,请区分失败的是播放列表请求还是媒体分片请求。
如果返回 403,优先检查鉴权和访问规则;如果返回 404,优先检查地址路径和源流是否可用。请记录响应状态码和响应内容,状态码本身无法确定具体原因。
使用支持相应协议和编码格式的其他播放器测试。如果可以正常播放,请检查原播放器的兼容性和配置。
对于浏览器播放,请查看开发者工具中的控制台和网络请求,检查证书错误,或 HTTPS 页面加载 HTTP 直播流的问题。如果 JavaScript 请求因跨域限制而失败,请检查 CORS 响应头。HLS 播放列表和媒体分片都可能需要这些响应头。
使用其他设备和网络进行对比测试。如果只有一名观众受到影响,请检查该观众的网络连接、防火墙、代理、浏览器和播放器。
检查源流的音频编码,确认 HLS 播放器支持该编码。使用其他已启用的协议播放同一直播流进行对比。如果 RTMP 或 HTTP-FLV 有声音而 HLS 没有,请使用 AAC 音频编码测试。对于浏览器播放,还应检查自动播放限制是否导致播放器静音。
如果问题仍未解决,请向 CDNetworks 技术支持提供:
分享地址、日志或截图前,请隐藏登录凭据、推流密钥、Token 和鉴权密钥。