推流不成功的原因和解决方法

最近更新时间: 2023-10-10 19:39:11

一般来说,推流不成功的原因可以从以下几点着手开始排查:

  1. 推流地址错误
  2. 连接服务器失败

推流地址错误

七牛的 rtmp 推流地址默认需要鉴权,也就是合法的签算地址才能够正确的推流,否则都会被服务器直接 deny,鉴权方式可以参考七牛直播推流鉴权

连接服务器失败

  1. rtmp 协议默认使用的端口是 1935,客户端使用我们的 sdk 一般不会出现端口问题,如果使用服务器推流,请检查是否是 1935 没有被防火墙放行,如果没有放行,就会出现连接不到七牛服务器的问题

  2. 使用 sdk 推流,出现连接服务器失败,可以使用我们的网络检测工具 测试一下你们的推流域名,是否正确的解析

看下TCP连接是否有节点数据返回,例如图中返回了 180.97.72.163,如果没有节点信息返回,建议换一个网络,比如换成 4G 进行测试;如果有信息返回,依旧推流不成功,可以提交工单联系我们。 提交工单时可以将用户访问这个链接的情况DNS检测和对应的客户端推流log也一并打印下加快排查进度

  1. pc 端使用 OBS 推流,如果出现推流失败原因,可以先 ping 一下您的域名,看下是否通过,如果通不过,报错 unknown host,则是网络问题,可以修改 dns 为 180.76.76.76 然后测试;如果可以通过,麻烦检查一下推流地址是否过期,或者不合法,另外,OBS 填写规则是否有问题

  1. 推流域名都是需要做CNAME解析之后才可以使用的,刚开始使用时可以 dig 一下推流和播放域名看看解析的情况,如果域名运营商后台已经做好了配置,但是查询不到解析的话需要联系域名运营商进行帮忙查看。

七牛的直播抢流

七牛直播云的的一个推流URL只能同时被一个客户端推流使用;当有新的客户端调用推流URL时,默认抢流逻辑是后推流者抢占到该URL的推流使用权。
为了预防对同一个URL的推流误用冲突,可以使用dynamic 鉴权:推流一次断开或结束,该URL就失效。
客户如果有明确的推流抢占需求,可以在推流URL中追加的serialnum=NUM参数来定义抢占优先级。对同一个流,有以下几种抢占情况:

  • Case1:推流都带上参数serialnum时,NUM值大的推流,抢占值小的推流。
  • Case2:带上参数serialnum的推流,抢占不带参数serialnum的推流。
  • Case3:推流都不带参数serialnum时,后一个推流抢占前一个推流。
以上内容是否对您有帮助?
  • Qvm free helper
    Close