本文提供了调用视频异步检测任务进行视频标签识别的具体内容,旨在帮助您编写程序构建HTTP调用请求。

  • 关于如何构造HTTP请求,请参考请求结构
  • 您也可以直接选用已构造好的HTTP请求,具体请参考SDK参考

描述

业务接口/green/video/asyncscan

异步检测视频中包含的标签内容。

请求参数

关于在请求中必须包含的公共请求参数,请参考公共参数

请求body是一个JSON对象,字段说明如下:

名称 类型 是否必需 描述
bizType 字符串 自定义业务类型,由业务方提供。
每个bizType对应不同的算法/模型,运维人员可以为某一bizType动态地增加、删除要检测的风险场景。通过配置,后端根据该字段对请求做不同处理。
说明 该字段优先级高于 scenes字段。
scenes 字符串数组 指定视频检测的应用场景,可选值包括:tag
callback 字符串 异步检测结果回调通知您的URL,支持HTTP/HTTPS。当该字段为空时,您必须定时检索检测结果。
seed 字符串 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。
tasks JSON数组 JSON数组中的每个元素是一个结构体(Video表)。每个元素的具体结构描述见task
表 1. task
名称 类型 是否必需 描述
clientInfo JSON结构体 客户端信息,参考公共参数中的公共查询参数。
服务器会把全局的 clientInfo和此处独立的 clientInfo合并。
说明 独立的 clientInfo优先级更高。
dataId 字符串 数据Id。需要保证在一次请求中所有的Id不重复。
url 字符串 视频地址,不能和frames同时为空,也不能和frames同时有值。
说明 传入本字段时按照传URL方式计费。
frames JSON数组 截帧信息。frames中的每个元素是个结构体(Frame表),每个元素的具体结构描述见frame
说明 传入本字段时按照传图片序列的方式计费。
framePrefix 字符串 frames存在时,截帧的完整URL为:framePrefix + frame.url
time 整型 内容创建/编辑时间。
length 整型 视频长度,单位为秒。
interval 整型 视频截帧间隔,单位为秒,取值范围为[1, 60]。默认值为1秒。
maxFrames 整型 截帧最多张数,取值范围为[5, 200]。默认为200张。
说明 当使用OSS地址(以 oss://开头)作为视频源地址,并且授权内容安全服务访问阿里云MTS服务后,最大可截取20,000张,该方式不会产生额外费用。关于授权内容安全访问阿里云MTS服务的方法,请参考授权访问MTS服务
表 2. frame
名称 类型 是否必需 描述
url 字符串 截帧地址。当framePrefix存在时,完整的截帧地址为:framePrefix + url
offset 整型 该截帧距离片头的时间戳,单位为秒。

返回参数

返回结果说明,参见返回结果

返回body中的Data字段是JSON数组,每一个元素包含如下字段:

名称 类型 是否必需 描述
taskId 字符串 该检测任务的ID。
dataId 字符串 对应请求的dataId

结果回调通知参数(callback、seed)

使用说明

如果您在请求参数中指定了回调通知参数callback,被回调callback值,即一个http(s)协议接口的URL,则需要支持POST方法,传输数据编码采用utf-8,并且支持两个表单参数checksumcontent。系统将按以下描述的生成规则和格式设置checksum和content的值,调用您的callback接口返回检测内容。

您服务端接收到我们推送的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将最多重复推送16次。

回调结果参数的生成规则
名称 类型 描述
checksum String 用户uid + seed + content拼成字符串,通过SHA256算法生产。用户UID即账号ID,您可在阿里云控制台上查询。为防篡改,您可以在获取到推送结果时,按此算法生成字符串,与checksum做一次校验。
content String JSON字符串格式,请自行解析反转成JSON对象。content结果格式参见下文。
content结果格式
{
      "code":200,
      "msg":"OK",
      "dataId":"videoId xxx",
      "taskId":"taskId xxx",
      "results":[
        {
          "label":"tag",
          "rate":99.2,
          "scene":"tag",
          "suggestion":"review"
        }
      ]
}

示例

请求示例
  • 传图片序列
    {
    "scenes":["tag"],
    "tasks":[
      {
        "dataId":"videoId xxx",
        "time":1475556078881, // 视频创建时间,单位毫秒
        "frames":[
          {
            "offset":10,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460000"
          },
          {
            "offset":20,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460001"
          },
          {
            "offset":30,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460002"
          },
          {
            "offset":40,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460003"
          },
          {
            "offset":50,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460003"
          },
          {
            "offset":60,
            "url":"http://g1.ykimg.com/0B860000586C0A0300038A046000x"
          }
        ]
      }
    ]
    }
  • 传视频URL
    {
    "scenes":[
      "tag"
    ],
    "tasks":[
      {
        "dataId":"test6I@p7TwAKV7eGUR3ONfS$-1n@wr9",
        "interval":1,
        "maxFrames":200,
        "url":"http://foo.bar/a.mp4"
      }
    ]
    }
返回示例
{
  "code":200,
  "msg":"OK",
  "requestId":"requestID xxx",
  "data":[
    {
      "dataId":"videoId xxx",
      "taskId":"taskId xxx"
    }
  ]
}