视频文件异步识别

当待审核视频较大或时长较长时,用户可以通过该接口进行异步识别,识别结果将以回调的方式通知用户。除去回调外,用户也可以主动查询识别结果

调用该接口时会返回 videoId 作为该视频(也即本次审核任务)的唯一标识,并在回调请求中携带 videoId。同样的,主动查询识别结果时也需要提供 videoId。

1. 接口请求

1.1 接口地址

  • 国内: http://api.video.tuputech.com/v3/recognition/video/asyncscan/<secretId>
  • 国外: http://api-us.open.tuputech.com/v3/recognition/video/asyncscan/<secretId>

secretId 需替换为您的 secretId,请联系我们为您开通 secretId。

1.2 请求方法及请求头

请求方法: POST

请求头:

参数名称 类型 是否必需 说明
Content-Type String application/json

1.3 说明

1. 支持格式

支持的格式:flv, mkv, mp4, rmvb, avi, wmv, 3gp, ts, mov, gif, m3u8, mpg/mpeg, mxf。

2. 任务并发数

测试 secretId 视频异步处理最大并发为 30 个,即同时处理最大数量为 30 个。超出的任务会排队进行处理。

正式调用时可以联系我们,根据需求调整并发数。

3. 视频截图分辨率

如果视频的分辨率的短边超过 1024,则截取的图片以 “1024/短边” 等比例截取。

例如:视频分辨率为 1920x1080,截图的尺寸为 1820x1024。

1.4 请求参数

参数名称 类型 是否必需 说明
video String 视频地址,支持HTTP(S)。须支持 HEAD 请求供检查视频文件格式及大小。
customInfo Object 自定义信息,用于给视频附加额外信息(比如:直播客户可能传房间号,或者主播ID信息)。
interval Int 视频截图间隔,范围[1, 10]秒,默认3秒。
callbackUrl String 回调地址,用于以 POST 请求通知识别结果,支持HTTP(S)。
callbackRules Object 回调规则,用于返回指定类型的数据,默认返回违规标签的数据。
audio Boolean 是否开启语音识别,默认false。
task Array 指定本次调用要审核的任务。
timestamp Number 当前的服务器的Unix时间戳。
nonce Number 随机数。
signature String 我们采用的数字证书签名算法是: "RSA-SHA256" ,签名输出类型是: "base64" ,具体步骤如下:
1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“, ”相连,得到sign_string;
2、利用您的私钥,使用算法 "RSA-SHA256" 签名,输出为 "base64" 格式,得到参数signature的值。

点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证

callbackRules 参数

参数名称 类型 是否必需 说明
[taskId] Array 识别任务的回调规则。

taskId 参数

参数名称 类型 是否必需 说明
label Int 指定返回的识别分类。
review Boolean 指定返回的复审类型。
faceId Array<String> 指定图片搜索返回的人物名称。
typeName Array<String> 指定图片搜索返回的人物类型。
similarity Number 指定图片搜索返回大于等于相似度的结果。

1.5 请求示例

curl请求示例

curl -X POST --header 'Content-Type: application/json' \
-d '{
  "video": "http://tuputech.com/video.mp4",
  "callbackUrl": "http://customer.com/callback",
  "timestamp": 1560829321048,
  "nonce": 0.5879054662123078,
  "signature": "aLXNL+R4pLyRUCUMGBabzRASQWCNrO/UoHOaCjWOhPcXQ3mbrzww/w1gQjcLhiuWyGcLesldH/Ep3Oj3cglKT0lgFi+2XqoWoat/1m+1QN/2WKx7GNd3EaIeCqe4UL2P7jVkj9sLPiIL7Pup7Kl8OZDnn9X67ghH32WaicrYsvs="
}' \
'http://api.open.tuputech.com/v3/recognition/video/asyncscan/your_secretId'

请求体示例

{
    "video": "http://tuputech.com/video.mp4",
    "customInfo": {
        "id": 1
    },
    "interval": 1,
    "callbackUrl": "http://customer.com/callback",
    "callbackRules": {
        "54bcfc6c329af61034f7c2fc": [
            {
                "label": 0,
                "review": false
            }
        ],
        "5b7be1f59b0c77a8c2afb351": [
            {
                "faceId": ["xxx", "yyy"]
            },
            {
                "typeName": ["国家或地区领导人"]
            },
            {
                "similarity": 0.7
            }
        ]
    },
    "audio": false,
    "task": ["54bcfc6c329af61034f7c2fc"],
    "timestamp": 1559554003759,
    "nonce": 0.6157904536165131,
    "signature": "p0fX2Vb5JMtN0wM7WkQRsyq/aH2zk3zYYRlBAydPmuWkofb06KdSPhq4URYHaAFU/dXodfJS9x2PbZBNz084RF0NIiJvBUcK8mFeA/YliRJnGqv2x3BiNffN61nWJirALvmjbfEWwTdINxFArAIvsV35ivuTBO/jDueWhoxEI9Y="
}

2. 接口响应

2.1 响应内容

接口返回带签名的 JSON 数据,业务数据需要用户解析 json 字段获得

参数名称 类型 说明
signature String 我们采用的数字证书签名算法是: "RSA-SHA256" ,签名输出类型是: "base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证:
1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data;
2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式;
3、用signature对json进行签名认证, 算法: RSA-SHA256 ,输出类型: base64 ,得到认证结果;
4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。
json String json 字段经过JSON.parse(json)后,得到具体的结果。

json 参数

参数名称 类型 说明
videoId String 视频唯一标识。
code Int 返回码,参考服务公共状态码解析
message String 返回信息。
nonce Number 随机数。
timestamp Number 当前的服务器的Unix时间戳。

2.2 响应示例

{
  "json": "{\"code\":0,\"message\":\"success\",\"videoId\":\"617b99fb021942117f715ea7\",\"nonce\":0.132434424,\"timestamp\":1635490299132}",
  "signature": "ii6/.../OwY6vL1aygo9IQuXNGI6XDXN8lNc="
}

3. 识别结果回调

3.1 说明

视频识别结果通过回调通知用户,请求方式为 POST,请求体为带签名的 JSON 数据。

当用户回调接口返回 HTTP 状态码 200 响应时,即认为回调成功。如果 HTTP 状态码不为 200,会在 10 秒内重试最多 3 次。

3.2 回调参数

参数名称 类型 说明
signature String 我们采用的数字证书签名算法是: "RSA-SHA256" ,签名输出类型是: "base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证:
1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data;
2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式;
3、用signature对json进行签名认证, 算法: RSA-SHA256 ,输出类型: base64 ,得到认证结果;
4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。
json String json 字段需经过JSON.parse(json)后,得到具体的结果。

json 参数

参数名称 类型 说明
code Int 返回码,参考 服务公共状态码解析
message String 返回信息。
nonce Number 随机数。
timestamp Number 当前的服务器的Unix时间戳。
suggestion Number 汇总结果,整体的通过/拒绝情况,参考 汇总结果解析
riskType Number 汇总结果,整体的风险类型,参考 汇总结果解析
videoInfo Object 视频信息。
customInfo Object 自定义信息,请求参数中的customInfo。
[taskId] Object 识别任务的结果。

videoInfo 参数

参数名称 类型 说明
id String 视频唯一标识。
captureStart String 视频截图开始时间,ISO时间。
capturedImages Number 视频整体截帧数量。
duration Number 视频时长,单位秒。
frames Number 视频帧数,单位帧。
status String 视频状态,end/error。
message String 视频结果信息。

3.3 各识别任务回调参数

3.4 识别结果回调示例

{
  "json": "{\"code\":0,\"message\":\"success\"...}",
  "signature": "ii6/.../OwY6vL1aygo9IQuXNGI6XDXN8lNc="
}

json 字段经过解析后内容如下:

{ 
    "videoInfo": {
        "id": "5d0b2f0511b3e74eadf152dd",
        "captureStart": "2019-06-20T07:00:22.851Z",
        "duration": 8.5,
        "frames": 204,
        "status": "end",
        "message": "success"
    },
    "customInfo": {
        "id": 1
    },
    // 图片分类
    "54bcfc6c329af61034f7c2fc": {
        // 指定label的部分图片列表
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357610.8919706822430384.jpg",
                "rate": 0.7911882400512695,
                "label": 0,
                "review": false,
                "offset": 0
            }
        ],
        "avgScores": [
            {
                "score": 0.9632003605365753,
                "label": 0
            },
            {
                "score": 0.036799637170042844,
                "label": 1
            }
        ],
        "maximums": [
            {
                "max": 0.9982892870903015,
                "label": 0
            },
            {
                "max": 0.18442420661449432,
                "label": 1
            }
        ],
        "statistics": [
            {
                "count": 10,
                "label": 0
            },
            {
                "count": 0,
                "label": 1
            }
        ],
        "label": 0,
        "review": false
    },
    // 图片搜索
    "5b7be1f59b0c77a8c2afb351": {
        // 指定label的部分图片列表
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
                "similarity": 0.32518404722213745,
                "label": 2,
                "review": false,
                "facePosition": [
                    [
                        0.19140625,
                        0.25
                    ],
                    [
                        0.3125,
                        0.25
                    ],
                    [
                        0.3125,
                        0.4652777777777778
                    ],
                    [
                        0.19140625,
                        0.4652777777777778
                    ]
                ],
                "typeName": "外国政治人物",
                "faceId": "金正恩",
                "personId": "5cc01fe9da417194068fdd41",
                "offset": 0
            }
        ],
        "statistics": [
            {
                "count": 1,
                "label": 0
            },
            {
                "count": 3,
                "label": 2
            },
            {
                "count": 6,
                "label": 3
            }
        ],
        // 匹配的全部人物列表
        "matchList": [
            {
                "personId": "5cc01fe9da417194068fdd41",
                "faceId": "金正恩",
                "typeName": "外国政治人物"
            }
        ],
        "label": 0,
        "review": false
    },
    // 人物搜索
    "5e13f8b2170dd16ec51f2c95": {
        // 匹配的全部图片列表
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
                "scene": "politician",
                "similarity": 0.32518404722213745,
                "label": 2,
                "review": false,
                "facePosition": [
                    [
                        0.19140625,
                        0.25
                    ],
                    [
                        0.3125,
                        0.25
                    ],
                    [
                        0.3125,
                        0.4652777777777778
                    ],
                    [
                        0.19140625,
                        0.4652777777777778
                    ]
                ],
                "typeName": "外国政治人物",
                "faceId": "金正恩",
                "personId": "5cc01fe9da417194068fdd41",
                "offset": 0
            }
        ],
        "statistics": [
            {
                "count": 1,
                "label": 0
            },
            {
                "count": 3,
                "label": 2
            },
            {
                "count": 6,
                "label": 3
            }
        ],
        // 匹配的全部人物列表
        "matchList": [
            {
                "scene": "politician",
                "personId": "5cc01fe9da417194068fdd41",
                "faceId": "金正恩",
                "typeName": "外国政治人物"
            }
        ]
    },
    // 自定义图库
    "5c8f44ca25ade48455a63bad": {
        "maximums": [
            {
                "max": 0.7245864868164062,
                "label": 2
            }
        ],
        "statistics": [
            {
                "count": 4,
                "label": 2
            }
        ],
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
                "label": 2,
                "similarity": 0.6458022594451904,
                "relatives": [
                    {
                        "path": "https://static.tuputech.com/lts/image/original/lts-52/LTS-Bucket-UserDefineImages/2019-03-29/cloud-api/storage-0831/2019-03-29/10/0.9202317260827633/15538277415580.7420568768203986.jpg",
                        "score": 0.6458022594451904
                    }
                ],
                "offset": 10
            }
        ],
        "label": 2
    },
    // 语音转译结果
    "5caee6b2a76925c55a09a6d2": {
        "violations": [
            {
                "startTime": 12,
                "endTime": 15,
                "content": "毛泽东",
                "action": "block",
                "label": "Politics",
                "review": false,
                "rate": 0.896484,
                "details": [
                    {
                        "keyword": "毛泽东",
                        "hint": "毛泽东",
                        "mainLabel": "Politics",
                        "subLabel": "National_Leader"
                    }
                ]
            }
        ],
        "text": "毛泽东你好"
    },
    // 低俗语音
    "5c8213b9bc807806aab0a574": {
        "violations": [
            {
                "label": 1,
                "review": false,
                "details": [
                    {
                        "startTime": 10,
                        "endTime": 20,
                        "label": 1,
                        "rate": 0.9998823404
                    }
                ]
            }
        ]
    },
     // OCR文本审核
    "5e1d634d2809c24f6d909bd3": {
        // 指定label的部分图片列表
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
                "text": "毛泽东",
                "scores": 0.9951668977737427,
                "degree": 0,
                "location": [
                    [
                        0.4256518406293357,
                        0.5753968315895163
                    ],
                    [
                        0.5806905895660593,
                        0.5753968315895163
                    ],
                    [
                        0.5806905895660593,
                        0.65079364460096
                    ],
                    [
                        0.4256518406293357,
                        0.65079364460096
                    ]
                ],
                "textAnalysis": {
                    "label": 3,
                    "review": false,
                    "rate": 0.9,
                    "details": [
                        {
                            "keyword": "毛泽东",
                            "hint": "毛泽东",
                            "mainLabel": 3
                        }
                    ]
                },
                "offset": 10
            }
        ],
        "avgScores": [
            {
                "score": 0.9,
                "label": 3
            }
        ],
        "maximums": [
            {
                "max": 0.9,
                "label": 3
            }
        ],
        "statistics": [
            {
                "count": 1,
                "label": 3
            }
        ],
        "label": 3,
        "review": false
    },
    // 违禁台标
    "5dca1869d3d8752b37f94ee1": {
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-233/2020-06-01/17-7/5c8760515a82342809627fea/15910053542810.3343467625425356.jpg",
                "location": [
                    [
                        0.03537565228836477,
                        0.03303825855255127
                    ],
                    [
                        0.2027942005938315,
                        0.03303825855255127
                    ],
                    [
                        0.2027942005938315,
                        0.271730899810791
                    ],
                    [
                        0.03537565228836477,
                        0.271730899810791
                    ]
                ],
                "category": 0,
                "scores": 0.9999051094055176,
                "offset": 1
            }
        ],
        "avgScores": [
            {
                "score": 0.39996163845062255,
                "category": 0
            }
        ],
        "maximums": [
            {
                "max": 0.9999051094055176,
                "category": 0
            }
        ],
        "statistics": [
            {
                "count": 2,
                "category": 0
            }
        ]
    },
    // logo检测
    "5eeadb619ac44c1316975f51": {
        "avgScores": [
            {
                "score": 0.745452880859375,
                "category": 0
            }
        ],
        "maximums": [
            {
                "max": 0.80084228515625,
                "category": 0
            }
        ],
        "statistics": [
            {
                "count": 2,
                "category": 0
            }
        ],
        "fileList": [
            {
                "url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2020-08-24/14-7/5c8760515a82342809627fea/15982522135770.7805975910322889.jpg",
                "location": [
                    [
                        0.06879091262817383,
                        0.05533757335261295
                    ],
                    [
                        0.1368561167466013,
                        0.05533757335261295
                    ],
                    [
                        0.1368561167466013,
                        0.16865464260703636
                    ],
                    [
                        0.06879091262817383,
                        0.16865464260703636
                    ]
                ],
                "degree": 0,
                "category": 0,
                "scores": 0.80072021484375,
                "text": "logo",
                "offset": 1
            }
        ]
    },
    "code": 0,
    "message": "success",
    "nonce": "0.9994704892215807",
    "timestamp": 1561014050113
}

results matching ""

    No results matching ""