有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
推断流回调用于推送直播流状态信息,包括直播推流成功和直播推流中断。您需在回调模板中配置推流回调和断流回调消息接收服务器地址,并将该模板与推流域名进行关联。在生成对应的推流地址并开始推送直播流后,腾讯云直播后台会将推流结果回调到您设置的接收服务器中。
本文主要讲解触发推断流回调事件后,腾讯云直播发送给用户的回调消息通知字段。

注意事项

阅读本文之前,希望您已经了解腾讯云直播是如何配置回调功能、您是如何接收回调消息的,具体请参见 如何接收事件通知

推断流事件参数说明

事件类型参数

事件类型
字段取值说明
直播推流
event_type = 1
直播断流
event_type = 0

回调公共参数

字段名称
类型
说明
t
int64
过期时间,事件通知签名过期 UNIX 时间戳。
来自腾讯云的消息通知默认过期时间是10分钟,如果一条消息通知中的 t 值所指定的时间已经过期,则可以判定这条通知无效,进而可以防止网络重放攻击。
t 的格式为十进制 UNIX 时间戳,即从1970年01月01日(UTC/GMT 的午夜)开始所经过的秒数。
sign
string
事件通知安全签名 sign = MD5(key + t)。说明:腾讯云把加密 key 和 t 进行字符串拼接后通过 MD5 计算得出 sign 值,并将其放在通知消息里,您的后台服务器在收到通知消息后可以根据同样的算法确认 sign 是否正确,进而确认消息是否确实来自腾讯云后台。
说明
key 为 功能配置>直播回调 中的回调密钥,主要用于鉴权。为了保护您的数据信息安全,建议您填写。




回调消息参数

字段名称
类型
说明
appid
int
用户 APPID
app
string
推流域名
appname
string
推流路径
stream_id
string
直播流名称
channel_id
string
同直播流名称
event_time
int64
事件消息产生的 UNIX 时间戳
sequence
string
消息序列号,标识一次推流活动,一次推流活动会产生相同序列号的推流和断流消息
node
string
直播接入点的 IP
user_ip
string
用户推流 IP
stream_param
string
用户推流 URL 所带参数
push_duration
string
断流事件通知推流时长,单位毫秒
errcode
int
推断流错误码
errmsg
string
推断流错误描述
set_id
int
判断是否为国内外推流。1-6为国内,7-200为国外
width
int
视频宽度,最开始推流回调的时候若视频头部信息缺失,可能为0
height
int
视频高度,最开始推流回调的时候若视频头部信息缺失,可能为0

断流原因

断流原因详情请参见 断流记录

回调消息示例

直播推流回调消息示例

{ "app":"test.domain.com", "appid":12345678, "appname":"live", "channel_id":"test_stream", "errcode":0, "errmsg":"ok", "event_time":1703731478, "event_type":1, "height":0, "idc_id":34, "node":"42.81.194.37", "sequence":"2210464508206756938", "set_id":2, "sign":"df49************************f5d4", "stream_id":"test_stream", "stream_param":"stream_param=test", "t":1703732078, "user_ip":"1.1.1.1", "width":0 }

直播断流回调消息示例

{ "app":"test.domain.com", "appid":12345678, "appname":"live", "channel_id":"test_stream", "errcode":1, "errmsg":"The push client actively stopped the push", "event_time":1703731606, "event_type":0, "height":0, "idc_id":34, "node":"42.81.194.37", "push_duration":"128581", "sequence":"2210464508206756938", "set_id":2, "sign":"3485************************56ae", "stream_id":"test_stream", "stream_param":"stream_param=test", "t":1703732206, "user_ip":"1.1.1.1", "width":0 }

推断流错误码

错误码
描述
1
推流客户端主动断流
2
3
4
35
5
直播系统内部错误
9
11
24
6
RTMP 协议内容异常
7
RTMP 单个帧大小超过配置允许的最大值
8
系统主动断开长时间无数据的推流
20
10
直播系统内部错误
12
推流链路网络异常
13
14
15
16
17
19
第三方鉴权失败
20
统主动断开长时间无数据的推流
23
RTMP 协议内容异常
24
直播系统内部错误
33
RTMP AMF 数据异常
18
100 ≤ SubErrCode ≤ 104
直播系统内部错误
SubErrCode = 200
获取推流链接对应的客户信息失败
SubErrCode = 201
您的直播服务已被关停
SubErrCode = 202
账号欠费,您的直播服务已被暂时关停,请及时充值
SubErrCode = 203
您的直播服务已被强制关停
SubErrCode = 300
不允许直接使用 IP 地址推流
SubErrCode = 301
无法识别推流域名
SubErrCode = 302
推流域名不合法
SubErrCode = 303
推流域名被禁用
SubErrCode = 304
推流应用名被禁用
SubErrCode = 305
推流流名称处于禁播状态
SubErrCode = 306
接入模式为频道模式,但尚未创建相应的推流频道
SubErrCode = 307
接入模式为频道模式,但当前推流频道已关闭
SubErrCode = 308
推流流名称中含有非法字符
SubErrCode = 309
推流应用名中含有非法字符
SubErrCode = 400
推流客户端 IP 在黑名单中
SubErrCode = 401
推流客户端 IP 不在白名单中
SubErrCode = 500
推流未携带过期时间参数
SubErrCode = 501
过期时间参数值已过期
SubErrCode = 502
推流未携带鉴权参数
SubErrCode = 503
校验鉴权参数不通过
SubErrCode = 600
当前推流条数超过配置允许的最大值
SubErrCode = 601
当前流名称对应的推流条数超过配置允许的最大值
21
SubErrCode = 100
收到客户调用的断流请求
SubErrCode = 101
收到客户调用的禁播请求
SubErrCode 等于其它未知值
收到新的推流链接顶替当前推流
0
未知原因,请 提交工单 联系我们
22
25
26
27
28
29
30
31
32
34
其它未知值