视频流异步识别

1. 接口请求

1.1 接口地址

http://api.video.tuputech.com/v3/recognition/video/stream/'your_secretId'

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

海外服务调用域名: api-us.open.tuputech.com

1.2 请求方法及请求头

请求方法: POST

请求头:

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

1.3 说明

1. 支持格式

  • 支持的协议:RTMP、HLS、HTTP-FLV、RTSP
  • 支持的容器格式:flv, mkv, mp4, rmvb, avi, wmv, 3gp, ts, mov
  • 支持的编码格式:H.264/AVC、H.263、 H.263+、MPEG-1、MPEG-2、MPEG-4、MJPEG、VP8、VP9

1.4 请求参数

参数名称 类型 是否必需 说明
video String 视频流地址。
customInfo Object 自定义信息,用于给视频附加额外信息(比如:直播客户可能传房间号,或者主播ID信息)。
interval Number 视频截图间隔,范围[1, 10]秒,默认3秒。
fragmentTime Number 视频片段时长,范围[10, 60]秒,默认60秒。
callbackUrl String 回调地址,用于通知返回结果,支持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的值。

点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证;点击API SDK查看代码示例。

1.5 请求示例

curl请求示例

curl -X POST --header 'Content-Type: application/json' \
-d '{
  "video": "rtmp://tuputech.com/stream",
  "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/stream/your_secretId'

请求体示例

{
    "video": "rtmp://tuputech.com/stream",
    "customInfo": {
        "id": 1
    },
    "interval": 1,
    "callbackUrl": "http://customer.com/callback",
    "callbackRules": {
        "54bcfc6c329af61034f7c2fc": [
            {
                "label": 0,
                "review": false
            }
        ]
    },
    "audio": false,
    "task": ["54bcfc6c329af61034f7c2fc"],
    "timestamp": 1559554003759,
    "nonce": 0.6157904536165131,
    "signature": "p0fX2Vb5JMtN0wM7WkQRsyq/aH2zk3zYYRlBAydPmuWkofb06KdSPhq4URYHaAFU/dXodfJS9x2PbZBNz084RF0NIiJvBUcK8mFeA/YliRJnGqv2x3BiNffN61nWJirALvmjbfEWwTdINxFArAIvsV35ivuTBO/jDueWhoxEI9Y="
}

2. 接口响应

2.1 响应内容

参数名称 类型 说明
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 数据,业务数据需要用户解析 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 返回信息。
videoInfo Object 视频信息。
fragmentInfo Object 视频片段信息。
customInfo Object 自定义信息,请求参数中的customInfo。
[taskId] Object 识别任务的结果。
nonce Number 随机数。
timestamp Number 当前的服务器的Unix时间戳。

videoInfo 参数

参数名称 类型 说明
id String 视频唯一标识。
captureStart String 视频截帧开始时间,ISO时间。

fragmentInfo 参数

参数名称 类型 说明
id String 视频片段唯一标识。
offsetStart Number 视频片段截帧开始位置,单位秒。
offsetEnd Number 视频片段截帧结束位置,单位秒。
capturedImages Number 片段截帧数量。

taskId 参数

参数名称 类型 说明
fileList Array 每张图片的识别结果。

3.3 各识别任务回调参数

开启语音识别 时, 语音回调请求体参考:

3.4 片段结果回调示例

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

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

{
    "videoInfo": {
        "id": "5cef85b518e5bc327d102e42",
        "captureStart": "2019-06-01T00:00:00.000Z"
    },
    "fragmentInfo": {
        "id": "5cef85b518e5bc327d102e42-1",
        "offsetStart": 0,
        "offsetEnd": 60,
        "capturedImages": 20
    },
    "customInfo": {
        "id": 1
    },
    // 图片分类
    "54bcfc6c329af61034f7c2fc": {
        "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": 2,
                "review": false
            }
        ]
    },
    // 图片搜索
    "5b7be1f59b0c77a8c2afb351": {
        "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": "非政治人物"
            }
        ]
    },
    // 自定义图库
    "5c8f44ca25ade48455a63bad": {
        "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
                    }
                ]
            }
        ]
    },
    // 语音转译结果
    "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": "毛泽东你好"
    },
    "code": 0,
    "message": "success",
    "nonce": 0.13782089185808521,
    "timestamp": 1559554942044
}

results matching ""

    No results matching ""