为何推流不成功

最近更新时间:2019-05-15 15:45:22

如果您按照 最佳实践 - 直播推流 中的范例来操作,发现仍推流不成功。可以依照本文档中罗列的视频推流过程中的常见问题,按照下列思路依次排查。

排查思路

1. 域名是否 CNAME 到了腾讯云地址?
推流域名只有 CNAME 到腾讯云地址才能推流成功,可以在【域名管理】里面查看已经创建的推流域名是否有 CNAME。其中有个 CNAME 标题栏,可以根据此项中的状态来查看推流域名是否有 CNAME。已经 CNAME 的状态如下:

如果还没 CNAME,可以根据 CNAME配置 来配置。

2. 网路是否正常?
RTMP 推流所使用的默认端口号是1935 ,如果您测试时所在网络的防火墙不允许1935端口通行,就会遇到连不上与服务器的问题。此时您可以通过切换网络(比如 4G )来排查是不是这个原因导致的问题。

3. txTime 是否过期?
有些客户担心自己的直播流量被人盗用,会将 txTime 设置的过于保守,比如从当前时间开始往后推5分钟。其实由于有 txSercet 签名的存在,txTime 的有效期不用设置的太短。相反,如果有效期设置的太短,当主播在直播过程中遭遇网络闪断时会因为推流 URL 过期而无法恢复推流。
txTime 建议设置为当前时间往后推12或者24小时为宜,也就是要长于一场普通直播的直播时间。

4. txSecret 是否正确?
腾讯云目前要求推流地址都要加防盗链以确保安全,防盗链计算错误或者已经过了有效期的推流 URL,都会被腾讯云踢掉,这种情况下直播 SDK 会抛出 PUSH_WARNING_SERVER_DISCONNECT 事件, 直播 SDK DEMO 此时的表现如下:

阅读 最佳实践 - 直播推流 了解如何获取可靠的推流 URL。

5. 推流URL是否被占用?
一个推流 URL 同时只能有一个推流端,第二个尝试去推流的 Client 会被腾讯云拒绝掉。此种情况可以登录直播控制台,在【流管理】的【在线流】中查看此条流是否已经在推,也可以在【禁推流】中查看该条流是否被禁推。