文档中心>直播 SDK>常见问题>推流失败相关问题

推流失败相关问题

最近更新时间:2024-08-14 20:00:51

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

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:// 协议地址。