这篇主要讲解触发录制异常事件回调后,腾讯云直播发送给用户的回调消息通知字段。
一、注意事项
阅读这篇之前,希望你已经了解腾讯云直播是如何配置回调功能、你是如何接收回调消息的,具体请参见 如何接收事件通知。
二、事件类型参数
| 事件类型 | 字段取值说明 |
| 录制异常事件 | event_type = 341 |
三、回调公共参数
| 字段名称 | 类型 | 说明 |
| 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。 |
| stream_id | string | 直播流名称。 |
| session_id | string | 直播录制会话 ID,用于区分不同的录制任务。 |
| file_format | string | 录制文件格式包括:FLV、TS、MP4、AAC 等。 |
| timestamp | int | 录制异常事件回调时间(单位:秒)。 |
| exception_level | string | 异常等级包括:info、warning、error等。 |
| exception | json | 详细异常事件描述。 |
五、exception 内参数说明
| 参数 | 类型 | 含义 |
| type | int | 异常事件类型。 |
| occurs | int | 对应异常事件统计周期内发生次数。 |
| desc | string | 异常事件描述。 |
异常事件类型
| 类型 | 含义 |
| -8 | 音频时戳跳变。 |
| -9 | 视频时戳跳变。 |
| -10 | 音视频时戳不同步。 |
| -11 | 视频时戳非法。 |
| -16 | 拉流失败。 |
| -17 | 音频录制推流无音频。 |
| -18 | 视频录制推流无视频。 |
| -22 | 音频时戳无变动。 |
| -23 | 视频时戳无变动。 |
| -24 | 音频时戳非法。 |
| -100 | 推流分辨率变化。 |
| -104 | 音视频帧写容器(文件)异常。 |
| -120 | 视频编码变化强制切换录制文件。 |
| -130 | 丢弃异常视频帧。 |
| -131 | 丢弃异常音频帧。 |
| -132 | GOP 长度异常。 |
| -200 | 音频时戳不均匀递增。 |
| -201 | 视频时戳不均匀递增。 |
六、回调消息示例
{ "interface":"general_callback", "event_type":341, "appid":1234567, "domain":"1234567.livepush.myqcloud.com", "path":"live", "stream_id":"test_stream_35b4a6e6d4261", "session_id":"1855245773800540059", "file_format":"ts", "timestamp":1739934527, "exception_level":"info", "exception": { "type":-201, "desc":"video ts deviation: 100.000000", "occurs":4 }, "sign": "ca3e25e5dc17a6f9909a9ae7281e300d", "t": 1754623810}