首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直播推流失败,手把手教你问题定位

直播推流失败,手把手教你问题定位

原创
作者头像
clairehou
修改2020-12-09 11:48:17
8.1K0
修改2020-12-09 11:48:17
举报

前言

经常会收到客户咨询,直播推流失败是什么原因导致。从云直播使用步骤上来讲,直播推流作为第一步,如果推流失败,后续的转码、录制、播放等都无从实现。因此推流可以说是非常重要的开端,但用户常常不知道失败后如何排查。其实推流失败大部分可归纳为几类原因,本篇以腾讯云直播推流为例介绍下常见的推流失败问题及定位方法。

问题描述

如果遇到直播推流失败,从哪些方面排查呢?这里总结以下几种方向,希望能帮助到有需要的同学。

  1. 是否使用的是推流域名?
  2. 推流域名有CNAME解析?
  3. 推流URL里带的鉴权有效时间txTime已经过期?
  4. 推流URL里带的鉴权签名txSecret计算错误?
  5. 流ID被禁用?
  6. 直播被停服?
  7. 推流经常断开?
  8. 多个推流端推同一个URL?

原因分析及解决方案

针对上面总结的几点问题,我们来看下每类问题定位分析和解决的方法。

1. 是否使用的是推流域名?

我们使用腾讯云直播需要用到两个域名,一个推流域名,一个播放域名,推流与播放域名不能一致。怎么确定我们是否用错域名了呢?

可以登陆官网控制台,在域名管理下,找到自己的域名,确认域名类型为推流域名,不是播放域名即可:

2. 推流域名有CNAME解析?

域名接入云直播后,系统会自动分配一个 CNAME 域名(以.liveplay.myqcloud.com为后缀),CNAME 域名不可以直接访问,我们需要在域名服务提供商处完成 CNAME 配置,配置生效后,CNAME 地址状态符号变成✅,就可以正常使用啦。可以通过控制台和命令行2种方法检查:

1)控制台检查,如果状态为红色则配置未生效:

2)命令行检查,执行dig+域名,如果查询不到解析则CNAME配置未生效,如下:

这里以一个生效的CNAME作为例子,正常情况下dig查询到第一条解析跟控制台配置的解析应该一致,比如:

3. 推流URL里带的鉴权有效时间txTime已经过期?

为保护直播推流的信息安全,云直播推流域名默认开启推流鉴权。使用推流地址生成器可生成带着 StreamName 的 RTMP 推流地址。有同学担心自己的直播流量被人盗用,将 txTime 设置得过于保守。如果一个推流地址之前推流正常,现在不能推流,可以通过以下2种方法检查是否推流时间过期:

1)在控制台事件中心-断流记录,检查对应流的断流原因:

这里断流原因比较明确,提示为过期时间参数值已过期,需重新生成新的推流地址。

2)也可以进一步验证时间戳是否过期。这里使用的例子txTime=5F97C063,通过地址:http://tool.oschina.net/hexconvert,首先把txTime换成十进制时间戳格式为1603780707,

再使用地址:http://tool.chinaz.com/Tools/unixtime.aspx,把十进制时间戳换成时间格式,断定是时间过期了。

4. 推流URL里带的鉴权签名txSecret计算错误?

大家使用防盗链来确保推流地址安全,当然防盗链计算错误也会导致推流失败。那如何计算防盗链,从哪里可以确认推流失败是txSecret计算错误导致的呢?可以参考下面2种方法:

1)首先看下如何确认txSecret 是否错误,在控制台事件中心-断流记录,检查对应流的断流原因:

可以看到提示为校验鉴权参数不通过,需要重新生成推流地址,可以使用控制台推流地址生成器自动生成。如果想自行计算推流地址,可以参考如下计算方法:

2)使用控制台自助诊断工具来判断txSecret的准确性。在工具页面选择推流地址,填写推流URL后执行诊断,可以对我们流的状态、txSecret、txTime等信息进行诊断,如下:

5. 流ID被禁用?

有时候流被禁用,会导致推流失败。可以通过 事件中心-断流记录,检查对应流的断流原因来确认:

这里看到推流流名处于禁播状态。导致禁播有以下几种可能:

1)用户在控制台流管理,禁用了该流;

2)用户调用了ForbidLiveStream接口禁推该流,

如果需要恢复对应的流,重新启用流即可。

6. 直播被停服?

如果用户视频内容涉黄,直播会被停服,登陆控制台会会显示如下页面。这里注意哦,涉黄停服后是不能再开服的,所以大家要留意自己直播内容的合规性。

7. 推流经常断开?

有同学会遇到,推流反复出现断开。但流偶尔可以正常推,说明推流地址正常,可能是用户侧网路问题,可以让用户切换下网络推流尝试。另外也可以使用腾讯云华佗诊断地址https://ping.huatuo.qq.com/,来获取客户端IP,LDNS,域名请求IP,请求耗时等信息,查看是否存在网路问题。

8. 多个推流端推同一个URL?

有时候推流地址申请下来,会有多端推流的情况,但第二个推流会失败。是因为一个推流 URL 同时只能有一个推流端,第二个尝试去推流的 Client 会被拒绝。遇到这种情况怎么定位呢?可以通过控制台-流管理-在线流,查看此条流是否已经在推,避免同时推流。

小结

以上就是我们常见的推流失败的问题及定位解决方法啦。大家后续遇到推流失败问题,可以多多使用控制台事件中心下的断流记录或自助诊断工具,优先自助排查问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题描述
  • 原因分析及解决方案
    • 1. 是否使用的是推流域名?
      • 2. 推流域名有CNAME解析?
        • 3. 推流URL里带的鉴权有效时间txTime已经过期?
          • 4. 推流URL里带的鉴权签名txSecret计算错误?
            • 5. 流ID被禁用?
              • 6. 直播被停服?
                • 7. 推流经常断开?
                  • 8. 多个推流端推同一个URL?
                  • 小结
                  相关产品与服务
                  云直播
                  云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档