若你配置了质检回调地址,在质检过程中,后台会将结果以 JSON 形式回调至你的回调地址。可以以通过回调内容,进行后续的处理操作。触发质检回调事件后,腾讯云云直播发送给用户的回调消息通知字段。
相关产品
云直播 产品页,含版本规格、价格与购买入口。
一、注意事项
阅读这篇之前,希望你已经了解腾讯云直播是如何配置回调功能、你是如何接收回调消息的,具体请参见 如何接收事件通知。
二、事件类型参数
| 事件类型 |
字段取值说明 |
| 质检回调 |
event_type = 343 |
三、回调公共参数
| 字段名称 |
类型 |
说明 |
| 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 |
业务 ID。 |
| appname |
string |
推流 path 路径。 |
| stream_id |
string |
流 ID。 |
| domain |
string |
推流域名。 |
| event_time |
int64 |
请求发送时间,UNIX 时间戳(秒)。 |
| transcode_template_id |
int |
转码模板 ID。 |
| watermark_template_id |
int |
水印模板 ID。 |
| score |
float |
实际分数值。 |
| function |
string |
功能大类:QualityControl。 |
| class |
string |
质检异常类型。 |
五、格式异常类型
| 类别 |
异常现象 |
异常原因 |
异常示意图 |
可能原因及排查建议 |
| VideoResolutionChanged |
视频分辨率发生变化。 |
视频分辨率发生变化。 |
|
通常是由于横竖屏切换后重新推流导致的,建议排查视频输入设备(例如摄像头)。 |
| AudioSampleRateChanged |
音频播放异常。 |
音频采样率变化。 |
|
通常是推流侧重新设置了音频编码器参数,建议排查音频输入设备(例如麦克风)和推流软件设置。 |
| AudioChannelsChanged |
音频播放异常。 |
音频通道数变化。 |
|
通常是由于推流侧重新设置了音频编码器参数,建议排查音频输入设备(例如麦克风)和推流软件设置。 |
| ParameterSetsChanged |
视频播放异常。 |
例如 H265/H264 的 VPS/SPS/PPS 变化、AAC 的解码器信息变化等。 |
|
通常是由于推流侧重新设置了音视频编码器参数,建议使用腾讯云云直播转码功能。 |
| DarOrSarInvalid |
视频的宽高比异常。 |
视频的宽高比异常。 |
|
通常是由于编码器内部错误导致的,建议使用腾讯云云直播转码功能。 |
| TimestampFallback |
视频播放卡顿或花屏。 |
DTS 时间戳回退。 |
|
通常是由于编码器内部错误或容器封装导致的,建议使用腾讯云云直播转码功能。 |
| DtsJitter |
视频播放卡顿。 |
DTS 抖动过大。 |
|
通常是由于编码器内部错误或容器封装导致的,建议使用腾讯云云直播转码功能。 |
| PtsJitter |
视频播放卡顿。 |
PTS 抖动过大。 |
|
通常是由于编码器内部错误或容器封装导致的,建议使用腾讯云云直播转码功能。 |
| AACDurationDeviation |
音频播放卡顿。 |
AAC 帧的时间戳间隔不合理。AAC 帧时间戳间隔是1024/48KHz=21.3ms,如果帧间隔远小于或大于该值,则AAC 的帧时间戳分布不均匀。 |
|
通常是由于编码器内部错误或容器封装导致的,建议使用腾讯云云直播转码功能。 |
| AudioDroppingFrames |
音频播放卡顿。 |
音频丢帧:对于 AAC 流,同 AACDurationDeviation 类似,当相邻两帧时间戳差值大于2倍理论帧间隔(例如48KHz下的21.3ms),此时可判定中间可能丢了1帧。对于其他流,超过1秒内没有收到音频帧则判定为丢帧,可能导致音频播放异常。 |
|
通常是由于网络不稳定导致的,建议检查网络稳定性。 |
| VideoDroppingFrames |
视频播放卡顿。 |
视频丢帧(超过1秒内没有收到视频帧)。 |
|
通常是由于网络不稳定导致的,建议检查网络稳定性。 |
| AVTimestampInterleave |
播放音画不同步。 |
音视频交织不合理。 |
|
通常是由于音视频交织时间戳不同步导致的,建议首先检查音视频源是否完整,然后检查容器封装是否异常。 |
| FpsJitter |
音视频播放卡顿。 |
通过 PTS 计算得到的流帧率抖动过大。 |
– |
通常是由于编码器性能不足或者网络抖动导致的,建议首先检查编码机器负载,然后检查网络稳定性。 |
| StreamOpenFailed |
视频无法播放。 |
流打开失败。 |
|
通常是由于推流网络异常、推流地址无效、推流鉴权失败等原因,建议排查推流软件设置。 |
| StreamParseFailed |
视频无法播放。 |
流解析失败。 |
|
通常是由于流数据损坏导致的,建议排查推流软件状态,建议检查网络稳定性。 |
| VideoFirstFrameNotIdr |
视频无法播放。 |
首帧不是 IDR 帧。 |
|
通常是由于编码异常或者数据传输异常导致的,建议首先排查编码后推流前的文件能否正常播放,然后排查推流传输的数据是否完整。 |
六、内容异常类型
| 类别 |
异常现象 |
异常示例 |
异常原因及排查建议 |
| Mosaic |
马赛克 |
|
可能是编码器编码时出现问题,或者传输时数据丢失。 |
| CrashScreen |
花屏 |
|
检查视频源数据是否损坏。 |
| Blur |
模糊 |
|
可能是由于聚焦不准、镜头覆盖灰尘和水汽、被人为涂抹和遮挡等问题。 |
| VideoNoise |
噪点 |
|
可能是因为摄像头故障。 |
| VideoJitter |
视频抖动 |
|
可能是由于摄像头或云台不稳定,也可能是拍摄手法导致。 |
| LowLight |
低光照 |
|
可能是摄像头故障,或拍摄环境昏暗。 |
| Overexposure |
过曝光 |
|
可能是摄像头故障,或拍摄环境光线过强。 |
| BlackWhiteEdge |
黑边、白边、黑屏、白屏 |
|
可能是编辑视频的分辨率和实际分辨率不一致导致的自动填充。 |
| SolidColorScreen |
纯色屏幕 |
|
可能是视频出现遮挡或者错误。 |
| QRCode/Barcode/AppletCode |
二维码/条形码/小程序码 |
|
检查视频内容是否正常。 |
| Silence |
音频静音 |
– |
检查音频录制是否正常。 |
| LowVoice |
音频音量过低 |
– |
检查音频录制是否正常。 |
| HighVoice |
音频爆音 |
– |
检查音频录制是否正常。 |
七、回调消息示例
{ "event_type": 343, "appid": 12345678, "appname": "live", "stream_id": "test", "domain": "abc.record.test.org", "event_time": 1747818881, "score": 44.15314104741461, "transcode_template_id": 123456, "watermark_template_id": 123457, "function": "QualityControl", "class": "Blur"}