本文介绍了调用视频质量异步检测接口(/green/video/asyncsca)进行视频质量检测的方法,帮助您编写程序构建HTTP调用请求。
使用说明
业务接口:/green/video/asyncscan
异步检测视频文件中是否有模糊、拼接、低亮度、黑屏、静帧等质量问题。 关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见SDK概览。
- 计费信息:
该接口为收费接口。关于计费方式,请参见内容安全产品定价。
- 检测场景:
视频质量检测场景目前只支持独立检测,不支持和其他场景一起检测,也不支持在检测视频内容的同时检测视频中的语音内容。
- 返回结果:
异步检测任务不会实时返回检测结果,您需要通过callback或者轮询的方式获取检测结果。检测结果最长保留一小时。
- callback获取检测结果:提交异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果,请参见请求参数。
- 轮询获取检测结果:提交异步检测任务时,无需传入callback参数;提交异步检测任务后,调用结果查询接口获取检测结果,请参见使用说明(视频异步检测结果查询)。
- 视频要求:
待检测视频需要满足以下要求:
- 视频文件链接支持以下协议:HTTP和HTTPS。
- 视频文件支持以下格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、WMA、RMVB、RM、FLASH、TS。
- 视频大小限制:单个视频大小不超过200 MB。
- 视频检测的时间依赖于视频的下载时间。请保证被检测的视频文件所在的存储服务稳定可靠,建议您使用阿里云OSS存储服务存储视频文件。
QPS限制
本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
bizType | String | 否 | default | 该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准)。 |
scenes | StringArray | 是 | ["quality"] | 指定视频检测的应用场景,唯一取值:quality,表示视频质量检测。 |
callback | String | 否 | http://www.aliyundoc.com/xx.json | 检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。
callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksum和content。内容安全按照以下规则和格式设置checksum和content,调用您的callback接口返回检测结果。
说明 您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。
|
seed | String | 否 | aabbcc123 | 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。 |
cryptType | String | 否 | SHA256 | 使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由用户uid + seed + content 拼接的字符串)按照您设置的加密算法加密后,再发送到您的回调通知地址。取值:
|
tasks | JSONArray | 是 | 指定检测对象,JSON数组中的每个元素是一个检测任务结构体。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,关于具体结构描述,请参见task。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
clientInfo | JSONObject | 否 | {"userId":"120234234","userNick":"Mike","userType":"others"} | 客户端信息,请参见公共参数中的公共查询参数。
服务器会把全局的clientInfo和此处独立的clientInfo合并。
说明 独立的clientInfo优先级更高。
|
dataId | String | 否 | videoId xxx | 数据ID。需要保证在一次请求中所有的ID不重复。 |
url | String | 否 | http://www.aliyundoc.com/a.mp4 | 可访问的视频公网地址。 |
interval | Integer | 否 | 1 | 视频截帧间隔,单位为秒,取值范围为1~600。默认值为1秒。 |
maxFrames | Integer | 否 | 200 | 系统对本次检测的视频进行截帧的张数上限,取值范围为5~3600,默认为200张。如需调整到更大,请联系商务经理。
说明 当使用OSS地址(以
oss:// 开头)作为视频源地址,并且授权内容安全服务访问阿里云MTS服务后,最大可截取20,000张,该方式不会产生额外费用。关于授权内容安全访问阿里云MTS服务的方法,请参见授权访问MTS服务。
|
content结果示例
{
"code": 200,
"msg": "OK",
"dataId": "videoId xxx",
"taskId": "taskId xxx",
"results": [
{
"label": "normal",
"rate": 99.2,
"scene": "quality",
"suggestion": "pass"
}
]
}
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
taskId | String | taskId xxx | 本次检测任务的ID。 |
dataId | String | videoId xxx | 检测对象对应的数据ID。
说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。
|
示例
请求示例
http(s)://[Endpoint]/green/video/asyncscan
&<公共请求参数>
{
"scenes": [
"quality"
],
"tasks": [
{
"dataId": "videoId xxx",
"url": "http://www.aliyundoc.com/a.mp4",
"interval": 1,
"maxFrames": 200
}
]
}
返回示例
{
"code": 200,
"msg": "OK",
"requestId": "requestID xxx",
"data": [
{
"dataId": "videoId xxx",
"taskId": "taskId xxx"
}
]
}
使用说明(视频异步检测结果查询)
业务接口:/green/video/results
查询异步检测的结果。建议您将查询间隔设置为30秒,最长不能超过4个小时,否则结果将会消失。
说明 该接口为免费接口。
QPS限制
本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
body | JSONArray | 是 | ["taskId xxx","taskId bbb"] | 要查询的taskId列表。最大长度不超过100。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 错误码,和HTTP状态码一致。
更多信息,请参见公共错误码。 |
msg | String | OK | 请求信息的响应信息。 |
dataId | String | videoId xxx | 检测对象对应的数据ID。
说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。
|
taskId | String | taskId xxx | 本次检测任务的ID。 |
results | JSONArray | 返回结果,调用成功时(code=200),返回结果中包含一个或多个元素,每个元素是个结构体。关于具体结构描述,请参见result。
说明 拉流检测场景中,code返回280表示在检测中,返回200表示检测完成。在检测中状态时,检测结果中包含从开始检测到当前时间检测到的问题。
|
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
scene | String | quality | 视频检测场景,和调用请求中的场景对应。 |
label | String | static | 检测结果的分类,与具体的scene对应。取值:
|
suggestion | String | block | 建议您执行的操作。取值:
|
rate | Float | 99.2 | 结果为该分类的概率,取值范围为0~100。值越高,表示越有可能属于该分类。 |
frames | JSONArray | 判断为该分类的一些截帧检测结果(FrameScanResult)。每个元素是个结构体。关于具体结构描述,请参见frame。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
url | String | http://www.aliyundoc.com | 截帧地址。如果视频中出现了有质量问题的内容,会返回截帧的URL。 |
offset | Integer | 2 | 该截帧距离片头的时间戳,单位为秒。 |
label | String | static | 该视频截帧的风险分类。取值:
|
rate | Float | 99.2 | 该视频截帧结果为label所述分类的概率,取值范围为0~100。值越高,表示越有可能属于该分类。 |
示例
请求示例
http(s)://[Endpoint]/green/video/results
&<公共请求参数>
[
"taskId xxx",
"taskId bbb"
]
返回示例
{
"code": 200,
"msg": "OK",
"requestId": "requestID xxx",
"data": [
{
"code": 200,
"msg": "OK",
"dataId": "videoId xxx",
"taskId": "taskId xxx",
"results": [
{
"label": "static",
"rate": 99.2,
"scene": "quality",
"suggestion": "block"
}
]
}
]
}