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 会被腾讯云拒绝掉。此种情况可以登录直播控制台,在 流管理 的 在线流 中查看此条流是否已经在推,也可以在 禁推流 中查看该条流是否被禁推。
6. 使用 V2TXLivePusher 调用 startPush 推流返回-2错误?
目前有以下几个场景会报错-2:
使用 LiteAVSDK_Smart 版本 V2TXLivePusher 推流
trtc://
协议,因为 smart 版本不支持 TRTC 协议,需要全功能版才支持。调用 startPush 推流传的推流地址缺少必要参数,请参见 推拉流 URL 拼接正确的流地址。
播放器初始化模式选择的是 V2TXLiveMode_RTC,但是传的 URL 是
rtmp://
协议地址。