视频内容分析接口
提交视频内容分析
用户提供视频路径,创建一次视频内容分析。
- 视频路径支持BOS、VOD、HTTP(S) URL路径;
- 正在分析中的视频无法再次进行分析;判断相同视频的依据是视频路径source,和视频内容无关;
- 已经分析过的视频(FINISHED/ERROR)可以重新进行分析;
- 视频重新分析会覆盖上次分析结果;
- 视频内容分析任务为异步处理模式,如果想要获取分析结果:可以设置回调参数notification,则分析完成之后会将分析结果自动回调通知notification关联的地址;也可以通过接口查询视频内容分析结果来实时获取。
提交视频内容分析接口,每个账号默认支持5并发(即,可同时处理5个视频任务),如因内容分析MCA业务峰值导致并发上下波动,属正常现象。如需更多并发配额,请提供预估用量等信息,提交工单联系我们。
请求语法
PUT /v{version}/media HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
无
请求体
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 视频路径,不超过1024字符(分辨率需大于等于30*30且时长在6小时内) | 是 |
auth | String | 视频路径鉴权参数,仅URL视频使用 | 否 |
title | String | 视频标题,默认不设置,不超过256字符 | 否,如果没有设置title,对于VOD媒资,MCA会主动去VOD查询标题;如果提供了标题,MCA也会对标题进行标签分析。 |
description | String | 视频描述,默认空字符串,不超过256字符 | 否 |
preset | String | 分析模板名称,若为空会使用默认模板 | 否 |
notification | String | 通知名称,使用方式见通知接口 | 否 |
priority | Integer | 优先级 | 否,默认为0,范围[0, 100],越大优先级越高;默认排队中的视频内容分析会按照创建时间顺序进行处理,如果有热点视频需要高优得到处理,则可以为其设置较大的优先级参数。 |
说明:
- 对于 BOS 视频,
source="bos://<bos-bucket>/<bos-object>"
, 例如"bos://testbucket/dir/video.mp4",由客户保证 BOS 路径可访问。- 对于 VOD 媒资,
source="vod://<vod-media-id>"
,例如"vod://mda-fhepatsnpn4rk9z",MCA 会内部请求VOD获取源视频地址,需要确保媒资在VOD状态为PUBLISHED。- 对于 VOD 媒资转码后的视频,
source="vod://<vod-media-id>-<vod-preset>"
, 例如"vod://mda-abc-default",注意这里使用“-”作为分隔符。(补充知识:VOD中媒资ID由系统生成,形如mda-xxx,共计20个字符;VOD模板名由数字、字母和下划线组成,不超过40字符)- 对于HTTP/HTTPS视频,
source="<http(s)-url>"
, 例如"http://domain/dir/video.mp4
",url中可以包含参数,例如"http://domain/dir/video?id=abc
"。另外,为了优化客户使用体验,MCA 支持将HTTP/HTTPS视频URL中的临时参数(主要是鉴权参数)通过auth="<key1>=<value1>&<key2>=<value2>"
和其它参数进行区分,auth中可以包含多个参数,用&
进行分割,例如"token=abcxyz×tamp=1514993900", MCA内部会使用?
或&
将source和auth拼接,得到完整的原视频URL并拉取进行分析。客户需保证实际拉取的URL可访问。客户仅需通过source
即可查询视频内容分析结果,同时分析回调中也仅返回source
。
请求示例
示例一:分析BOS类型媒资
PUT /v1/media HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "bos://samplebucket/sample.mp4", // 也支持图片bos://demobucket/demo.jpg
"preset": "customer_preset_name",
"notification": "customer_notification_name"
}
示例二:分析 VOD 媒资原视频
PUT /v1/media HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "vod://mda-fhepatsnpn4rk9z",
"preset": "customer_preset_name",
"notification": "customer_notification_name"
}
示例三:分析 VOD 媒资转码后视频
PUT /v1/media HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "vod://mda-fhepatsnpn4rk9z-mp4",
"preset": "customer_preset_name",
"notification": "customer_notification_name"
}
示例四:分析 URL 视频
PUT /v1/media HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "https://vca-customer.baidu.com/media.mp4", // 也支持图片https://vca-customer.baidu.com/media.jpg
"preset": "customer_preset_name",
"notification": "customer_notification_name"
}
示例五:分析包含鉴权参数的 URL 视频
PUT /v1/media HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "https://vca-customer.baidu.com/media.mp4", // 也支持图片https://vca-customer.baidu.com/media.jpg
"auth": "authorization=some_authorization_info"
"preset": "customer_preset_name",
"notification": "customer_notification_name"
}
响应体
参数 | 类型 | 描述 |
---|---|---|
source | String | 视频路径 |
mediaId | String | VOD媒资ID,source为VOD路径时存在 |
title | String | 视频标题 |
description | String | 视频描述 |
preset | String | 分析模板名称 |
status | String | 分析状态 |
percent | Number | 分析进度,0 ~ 100整数 |
notification | String | 通知名称 |
createTime | Date | 创建时间 |
响应示例
示例一:分析 BOS 类型视频响应
HTTP/1.1 200 OK
{
"source": "bos://samplebucket/sample.mp4",
"preset": "customer_preset_name",
"status": "PROVISIONING",
"percent": 0,
"createTime": "2018-10-09T08:05:58Z"
}
示例二:分析 VOD 媒资原视频响应
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"mediaId": "mda-fhepatsnpn4rk9z",
"title": "media title",
"preset": "customer_preset_name",
"status": "PROVISIONING",
"percent": 0,
"notification": "customer_notification_name",
"createTime": "2018-10-09T08:05:58Z"
}
示例三:分析 VOD 媒资转码后视频响应
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z-mp4",
"mediaId": "mda-fhepatsnpn4rk9z",
"title": "media title",
"preset": "customer_preset_name",
"status": "PROVISIONING",
"percent": 0,
"notification": "customer_notification_name",
"createTime": "2018-10-09T08:05:58Z"
}
示例四:分析 URL 视频响应
HTTP/1.1 200 OK
{
"source": "https://vca-customer.baidu.com/media.mp4",
"preset": "customer_preset_name",
"status": "PROVISIONING",
"percent": 0,
"notification": "customer_notification_name",
"createTime": "2018-10-09T08:05:58Z"
}
示例五:分析包含鉴权参数的 URL 视频响应
HTTP/1.1 200 OK
{
"source": "https://vca-customer.baidu.com/media.mp4",
"preset": "customer_preset_name",
"status": "PROVISIONING",
"percent": 0,
"notification": "customer_notification_name",
"createTime": "2018-10-09T08:05:58Z"
}
查询视频内容分析结果
根据视频路径查询分析结果。如果有重复分析,则返回最近一次分析的结果。
- 视频内容分析结果最长暂存30天,超过30天后会自动删除,无法查询;
- 视频内容分析结果涉及的“http(s)地址”字段(例如对于人脸标签,同级可能会提供的人脸图片地址字段faceUrl和人脸所在抽帧地址字段image)均带有鉴权,且鉴权有效时间为从发起请求开始1小时范围内;如果要对人脸图片地址等进行转储,需要在鉴权有效时间内完成;超过该时间段则建议重新获取视频内容分析结果,从而可以重新获取鉴权有效的“http(s)地址”。
请求语法
GET /v{version}/media HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 视频路径,需要对source进行urlEncode。 | 是 |
请求体
无
请求示例
示例一:查询 BOS 视频内容分析结果
GET /v1/media?source=bos%3a%2f%2ftestbucket%2fdir%2fvideo.mp4 HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
示例二:查询 VOD 媒资原视频内容分析结果
GET /v1/media?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
示例三:查询 VOD 媒资转码后视频内容分析结果
GET /v1/media?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z-mp4 HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
示例四:查询 URL 视频内容分析结果
GET /v1/media?source=http%3a%2f%2ftest.domain.com%2fdir%2fvideo.mp4 HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
说明:
注意:如前所述,对于 URL 视频,如果在提交分析时指定了
auth
参数,在查询分析结果时是不需要指定的。
响应头域
无
响应参数
参数 | 类型 | 描述 |
---|---|---|
source | String | 视频路径 |
mediaId | String | VOD媒资id,source为VOD路径时存在 |
title | String | 视频标题 |
description | String | 视频描述 |
durationInSecond | Number | 视频时长,仅当status!=PROVISIONING时存在 |
preset | String | 分析模板名称 |
status | String | 视频内容分析状态 |
percent | Number | 分析进度,0 ~ 100整数 |
notification | String | 通知名称 |
createTime | Date | 分析创建时间 |
startTime | Date | 分析开始时间,仅当status!=RPOVISIONING/CANCELLED时存在 |
publishTime | Date | 分析结束时间,仅当status=FINISHED/ERROR/CANCELLED时存在 |
results | Array | 分析结果列表 |
error | Object | 分析失败信息,仅当status=ERROR时存在 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
视频内容分析状态枚举如下:
分析状态 | 状态名称 | 描述 |
---|---|---|
PROVISIONING | 预处理 | 分析排队中 |
PROCESSING | 分析中 | 分析进行中 |
FINISHED | 分析结束 | 分析结束,可以查询分析结果 |
ERROR | 分析失败 | 分析失败,可以查询失败错误原因 |
CANCELLED | 分析取消 | 分析取消,视频排队时可以取消分析 |
分析结果格式为:
参数 | 类型 | 描述 |
---|---|---|
type | String | 分析场景 |
result | Array | 分析结果项 |
分析场景枚举如下:
分析场景 | 描述 |
---|---|
figure | 人脸 |
keyword | 关键字 |
scenario | 场景 |
entity | 实体 |
logo | logo |
knowledge_graph | 知识图谱 |
分析结果项格式为:
参数 | 类型 | 描述 |
---|---|---|
attribute | String | 分析结果标签 |
confidence | Double | 分析结果项的置信度,0~100的浮点数 |
source | String | 标签来源 |
version | String | 中间任务版本 |
subType | String | 对于关键词标签以及LOGO标签(即分析场景type=keyword、logo)会提供关键词分类和LOGO分类 |
time | Array | 标签对应时间段,空数组表示标签来自对整个视频的分析 |
+ start | Integer | 起始时间 |
+ end | Integer | 结束时间 |
labelId | String | 当标签来源source=scenario_classify/image_classify/human_attribute/shot_video_classify时,会提供标签id |
faceUrl | String | 对于人脸标签(即分析场景type=figure),当模版中开启人脸追踪时,可能会提供人脸图片地址 |
image | String | 对于人脸标签(即分析场景type=figure),当模版中开启人脸追踪时,可能会提供人脸所在抽帧地址 |
subTags | Array | 对于知识图谱标签(即分析场景type=knowledge_graph),可能会提供标签属性列表 |
+ name | String | 属性名,对于标签来源source=knowledge_graph_poem而言name的全量枚举是:作者/年代/类型,对于标签来源source=knowledge_graph而言name的全量枚举是:别名/类型/所属系列/国家/地区/语言/年代/上映时间/出品方/看点/主演/全体演员 |
+ attribute | Array |
属性值列表 |
错误码枚举如下:
错误码 | 错误信息 | 备注 |
---|---|---|
InvalidMedia | media duration/resolution exceeds limit | 视频时长/分辨率不满足MCA系统限制,请检查原视频 |
InvalidMedia | invalid audio or video | 视频元信息中音频或视频信息不合预期,请检查原视频 |
InvalidMedia | get media info failure | 无法获取视频元信息,请检查原视频 |
InvalidMedia | media is not published | VOD视频专属错误消息,VOD视频状态不为PUBLISHED,请检查原视频 |
InvalidMedia | media does not exist | VOD视频专属错误消息,VOD视频不存在,请检查原视频 |
InternalError | service internal error, please retry | 系统内部错误,建议重试 |
TimeOut | analyze time out, please retry | 视频内容分析超时,请先检查原视频,如视频正常则可以重试 |
其中当错误码为TimeOut时,根据视频时长不同,超时上限也不同:
视频时长 | 超时上限 |
---|---|
<3min | 15分钟 |
<10min | 30分钟 |
<30min | 1小时 |
其它 | 2小时 + 原始视频时长的一半 |
响应示例
示例一:视频内容分析成功
HTTP/1.1 200 OK
{
"source":"vod://mda-fhepatsnpn4rk9z",
"mediaId":"mda-fhepatsnpn4rk9z",
"title":"media title",
"description":"",
"preset":"customer_preset_name",
"status":"FINISHED",
"percent":100,
"notification":"customer_notification_name",
"createTime":"2018-10-09T12:00:00Z",
"publishTime":"2018-10-09T12:06:48",
"results":[
{
"type":"figure",
"result":[
{
"attribute":"姚晨",
"confidence":75.11,
"source":"face_recognition",
"version":"V1",
"time":[
{
"start":1,
"end":4
}
],
"faceUrl":"http://bj.bcebos.com/1_1.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab",
"image":"http://bj.bcebos.com/00001.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab"
},
{
"attribute":"姚晨",
"confidence":75.11,
"source":"private_face",
"version":"V1",
"time":[
{
"start":1,
"end":4
}
],
"faceUrl":"http://bj.bcebos.com/1_1.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab",
"image":"http://bj.bcebos.com/00001.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab"
},
{
"attribute":"倪大红",
"confidence":75.11,
"source":"knowledge_graph",
"version":"V3",
"time":[
{
"start":1,
"end":4
}
]
}
]
},
{
"type":"keyword",
"result":[
{
"attribute": "友情",
"confidence": 100.0,
"source": "text_generation",
"version": "V1",
"subType": "内容主题",
"time": []
},
{
"attribute": "口语化",
"confidence": 100.0,
"source": "text_generation",
"version": "V1",
"subType": "语言风格",
"time": []
},
{
"attribute":"家庭",
"confidence":64.34,
"source":"character",
"version":"V1",
"time":[
{
"start":4,
"end":5
}
]
},
{
"attribute":"家庭",
"confidence":26.63,
"source":"speech",
"version":"V1",
"time":[
{
"start":6,
"end":6
}
]
},
{
"attribute":"家庭",
"confidence":26.63,
"source":"title",
"version":"V1",
"time":[
{
"start":6,
"end":6
}
]
}
]
},
{
"type":"scenario",
"result":[
{
"attribute":"娱乐-娱乐周边",
"confidence":28.7,
"source":"scenario_classify",
"labelId": "00",
"version":"V2-6"
},
{
"attribute":"电视剧",
"confidence":28.7,
"source":"knowledge_graph",
"version":"V3"
},
{
"attribute":"娱乐-娱乐周边",
"confidence":28.7,
"source":"short_video_classify",
"labelId": "01",
"version":"V1"
}
]
},
{
"type":"entity",
"result":[
{
"attribute":"人物特写",
"confidence":58.73,
"source":"image_classify",
"labelId": "02",
"version":"V3",
"time":[
{
"start":4,
"end":6
}
]
},
{
"attribute":"人物特写",
"confidence":58.73,
"source":"object_detect",
"version":"V1",
"time":[
{
"start":4,
"end":6
}
]
},
{
"attribute":"天安门",
"confidence":58.73,
"source":"landmark",
"version":"V1",
"time":[
{
"start":4,
"end":6
}
]
},
{
"attribute":"服装配饰-正装",
"confidence":58.73,
"source":"human_attribute",
"labelId": "03",
"version":"V1",
"time":[
{
"start":4,
"end":6
}
]
},
{
"attribute": "堵车",
"confidence": 100.0,
"source": "ernie_prompt",
"version": "V1",
"time": [
{
"start":4,
"end":6
}
]
}
]
},
{
"type":"logo",
"result":[
{
"attribute":"美拍",
"confidence":58.73,
"source":"private_logo",
"subType": "其他标志",
"version":"V1",
"time":[
{
"start":4,
"end":6
}
]
},
{
"attribute":"美拍",
"confidence":58.73,
"source":"logo",
"subType": "其他标志",
"version":"V1",
"time":[
{
"start":4,
"end":6
}
]
}
]
},
{
"type":"knowledge_graph",
"result":[
{
"attribute":"定风波·莫听穿林打叶声",
"confidence":100,
"source":"knowledge_graph_poem",
"version":"V1",
"time":[
{
"end":73,
"start":115
}
],
"subTags":[
{
"attribute":[
"苏轼"
],
"name":"作者"
},
{
"attribute":[
"宋"
],
"name":"年代"
},
{
"attribute":[
"季节",
"写雨",
"豪放",
"人物",
"春天",
"写人",
"宋词三百首",
"景色"
],
"name":"类型"
},
{
"attribute":[
"三月七日,沙湖道中遇雨。雨具先去,同行皆狼狈,余独不觉。已而遂晴,故作此词。莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。"
],
"name":"内容"
}
]
},
{
"attribute":"都挺好",
"confidence":100,
"source":"knowledge_graph",
"version":"V3",
"time":[
],
"subTags":[
{
"attribute":[
"all is well"
],
"name":"别名"
},
{
"attribute":[
"家庭",
"都市"
],
"name":"类型"
},
{
"attribute":[
"都挺好"
],
"name":"所属系列"
},
{
"attribute":[
"中国"
],
"name":"国家"
},
{
"attribute":[
"大陆"
],
"name":"地区"
},
{
"attribute":[
"国语"
],
"name":"语言"
},
{
"attribute":[
"2018"
],
"name":"年代"
},
{
"attribute":[
"2019-03-01"
],
"name":"上映时间"
},
{
"attribute":[
"东阳正午阳光影视有限公司"
],
"name":"出品方"
},
{
"attribute":[
"姚晨倪大红亲情回归"
],
"name":"看点"
},
{
"attribute":[
"苏明玉(姚晨)",
"苏大强(倪大红)",
"苏明成(郭京飞)",
"石天冬(杨祐宁)",
"朱丽(李念)",
"苏明哲(高鑫)",
"吴非(高露)"
],
"name":"主演"
},
{
"attribute":[
"彩票店老板娘(蒋林燕)",
"洪总秘书(王璐)",
"周经理(杜艳)",
"沈厂长(李强)",
"赵鹏(徐晟)",
"苏母(陈瑾)",
"老蒙(张晨光)",
"柳青(王东)",
"小蒙(彭昱畅)",
"朱丽母亲(康群智)",
"朱丽父亲(侯长荣)",
"英殊(田丽)",
"舅舅(王正权)",
"舅妈(红花)",
"聂来金(赵彦民)",
"小蔡(涂凌)",
"小咪(石雨鑫)",
"少年苏明玉(薇薇安)",
"少年苏明成(李俊霆)",
"少年苏明哲(王成)",
"警察(岳旸)",
"洪总(刘钧)",
"客栈老板娘(赵千紫)",
"小李(李盟)",
"小汪(范哲琛)",
"阿奇(孙微木)",
"链家经纪人A(李汶璟)",
"大力(刘晓磊)",
"小刘(彭阳)",
"秘书(黄雅洁)",
"王经理(邬倩)",
"表弟(于快)",
"刘强(何小虎)",
"大姐(孙莲芳)",
"大姐夫(赵新环)",
"二姐(宋筱萍)",
"二姐夫(王洪存)",
"老袁(朱敏)",
"老刘(怀远)",
"苏明玉(姚晨)",
"苏大强(倪大红)",
"苏明成(郭京飞)",
"石天冬(杨祐宁)",
"朱丽(李念)",
"苏明哲(高鑫)",
"吴非(高露)",
"阿奇(孙弋然)",
"孙副总(张天舒)",
"小新(文静)",
"主任(李至强)",
"毛总监(任洛敏)",
"洪总秘书(王佳懿)",
"众邦(张权)",
"年轻保姆(李琰鑫)",
"女服务员(赵钰莹)",
"老袁(朱徽)",
"妇女甲(田瑞)",
"妇女乙(张丹)",
"老太太(葛兆美)",
"老凡(孙永炬)",
"瘦子(李严)",
"老倪(朱健)",
"保安(朱磊)",
"顾问(李伟)",
"大姨(肖舒丽)",
"大姨夫(李骏林)",
"二姨(孙志锋)",
"二姨夫(吴桂松)",
"菜贩(王军)",
"蒙母(高娅娜)",
"于监理(闫益民)",
"评弹男(马志伟)",
"评弹女(王一凡)",
"医生(曹世平)",
"小众邦(胡烁)",
"小明玉(边梓菡)",
"小明哲(吴明轩)",
"小明成(付汪洋)",
"男同学(李宏磊)",
"刘律师(曹雷)",
"中年男子(张大宝)",
"小金(谢珊珊)"
],
"name":"全体演员"
}
]
}
]
}
]
}
示例二:视频内容分析失败
HTTP/1.1 200 OK
{
"source":"vod://mda-fhepatsnpn4rk9z",
"mediaId":"mda-fhepatsnpn4rk9z",
"title":"media title",
"description":"",
"preset":"customer_preset_name",
"status":"ERROR",
"percent":100,
"notification":"customer_notification_name",
"createTime":"2018-10-09T12:00:00Z",
"publishTime":"2018-10-09T12:06:48",
"error":{
"code":"TimeOut",
"message":"analyze time out, please retry"
}
}
查询视频内容分析中间任务结果
MCA 对视频的分析过程,会涉及很多中间任务的执行。发起视频内容分析时选用的分析模板定义了需要执行的中间任务集合。只有当视频内容分析成功时才可以查询中间任务结果。
根据视频路径查询指定类型的中间任务分析结果。
- 视频内容分析中间任务结果最长暂存30天,超过30天后会自动删除,无法查询;
- 只有任务分析完成,且在30天内时可以查询到分析结果,否则查询时会抛出异常,异常信息会告知当前任务分析状态,详见任务未分析成功时响应体章节;
- 视频内容分析中间任务结果涉及的“http(s)地址”字段(例如当type=character时的视频抽帧地址字段image、当type=human_attribute时的视频抽帧地址字段image_url)均带有鉴权,且鉴权有效时间为从发起请求开始6小时范围内;如果要对视频抽帧地址等进行转储,需要在鉴权有效时间内完成;超过该时间段则建议重新获取中间结果,从而可以重新获取鉴权有效的“http(s)地址”。
请求语法
GET /v{version}/media/<type>?source={source} HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
路径参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
type | String | 中间任务类型 | 是 |
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 视频路径,需要对source进行urlEncode。 | 是 |
version | String | 中间任务版本 | 否,不填时基于默认版本查询 |
中间任务类型枚举和对应的默认版本如下:
中间任务类型 | 描述 | 默认版本 |
---|---|---|
character | 文字识别;注意在视频内容分析模板中开启“文字识别”才能查询该中间任务 | V1 |
ocr_structure | 画面文字分类;注意在视频内容分析模板中开启“文字识别-关键词优选”才能查询该中间任务 | V1 |
speech | 语音识别;注意在视频内容分析模板中开启“语音识别”才能查询该中间任务 | V1 |
textrank_speech | 语音关键词;注意在视频内容分析模板中开启“语音识别-关键词优选”才能查询该中间任务 | V1 |
image_classify | 视频帧粒度的图像分类结果;注意在视频内容分析模板中开启“图像分析-图像分类”才能查询该中间任务 | V3 |
human_attribute | 视频帧粒度的人体属性分析结果;注意在视频内容分析模板中开启“图像分析-人体属性分析”才能查询该中间任务 | V1 |
object_detect | 视频帧粒度的物体识别结果;注意在视频内容分析模板中开启“图像分析-物体识别”才能查询该中间任务 | V1 |
landmark | 视频帧粒度的地标识别结果;注意在视频内容分析模板中开启“图像分析-地标识别”才能查询该中间任务 | V1 |
logo_recognition | 视频帧粒度的logo识别结果;注意在视频内容分析模板中开启“logo识别”才能查询该中间任务 | V1 |
unrecognized_face | 陌生人脸;注意在视频内容分析模板中开启“人脸追踪”才能查询该中间任务 | V1 |
private_face_tracking | 视频帧粒度的自定义人脸结果;注意在视频内容分析模板中开启“人脸识别-自定义人脸识别-人脸追踪”才能查询该中间任务 | V1 |
private_face_image | 视频帧粒度的自定义人脸结果;注意在视频内容分析模板中开启“人脸识别-自定义人脸识别”才能查询该中间任务 | V1 |
face_recognition_tracking | 视频帧粒度的公众人脸结果;注意在视频内容分析模板中开启“人脸识别-公众人脸识别-人脸追踪”才能查询该中间任务 | V1 |
face_recognition_thumbnail | 视频帧粒度的公众人脸结果;注意在视频内容分析模板中开启“人脸识别-公众人脸识别”才能查询该中间任务 | V1 |
scenario_classify_v2 | 视频帧粒度的场景分类结果;注意在视频内容分析模板中开启“场景分类-视频场景分类”才能查询该中间任务 | general_V2-6 |
请求体
无
请求示例
GET /v2/media/speech?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
响应头域
无
任务分析成功时响应体
参数 | 类型 | 描述 |
---|---|---|
source | String | 视频路径 |
status | String | 中间任务状态,肯定为FINISHED |
type | String | 中间任务类型 |
result | String | 中间任务结果 |
任务未分析成功时响应体
参数 | 类型 | 描述 |
---|---|---|
requestId | String | 标记单次请求,用于日志排查 |
code | String | 异常状态码,默认为 VcaExceptions.InvalidMedia |
message | String | 任务未分析完成,描述当前媒资分析状态。例如"invalid media: media is ERROR" ,其中ERROR 表示当前任务分析状态,其枚举值有PROVISIONING/PROCESSING/ERROR/CANCELLED |
中间结果location计算说明
- 原视频宽度大于1280时触发转码,分析真实使用的是转码后的视频帧(不管是竖屏还是横屏)
- 转码规则:等比例缩放
- 缩放比例:原始视频宽 / 1280
- 将中间结果location转换为原始视频中的location:left ✖ 缩放比例、top ✖ 缩放比例、width ✖ 缩放比例、hight ✖ 缩放比例
当type=character时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
image | String | 视频抽帧地址 |
timestamp | Integer | 在视频中对应时间 |
words | Array | 当前抽帧识别结果列表 |
+ word | String | 标签 |
+ confidence | Double | 置信度 |
+ rect | Double | 文本框位置 |
++ widthInPixel | Double | 宽度 |
++ heightInPixel | Double | 高度 |
++ leftOffsetInPixel | Double | 左上角横坐标 |
++ topOffsetInPixel | Double | 左上角纵坐标 |
当type=ocr_structure时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Object | 画面文字分类识别结果 |
+ title | Array | 标题(title):特点是字体较大,停留时间较长,总结性质的话语,与内容强相关 |
++ word | String | 文字 |
++ startTimeInSeconds | Integer | 在视频中开始出现时间 |
++ endTimeInSeconds | Integer | 在视频中最后出现时间 |
++ duration | Integer | 在视频中出现的总时长 |
++ time_list | Array | 在视频中出现时间段列表;实际是二维数组,第一维表示有若干个时间段,第二维表示每个时间段的起止时间,所以第二维一定只包含两个元素 |
++ rect | Double | 文本框位置 |
+++ widthInPixel | Double | 宽度 |
+++ heightInPixel | Double | 高度 |
+++ leftOffsetInPixel | Double | 左上角横坐标 |
+++ topOffsetInPixel | Double | 左上角纵坐标 |
+ subtitle | Array | 数组元素结构同title;字幕(subtitle):特点是每一帧在固定的位置,且前后文字差异较大,与内容相关 |
+ docs | Array | 数组元素结构同title;文档(docs):画面出现的其他与视频相关的文本,往往在同一页面多行出现,与内容弱相关 |
+ roll_subtitle | Array | 数组元素结构同title;滚动字幕(roll_subtitle):特点是存在文字偏移现象,同时往往在视频的底部,与内容不相关 |
+ logo | Array | 数组元素结构同title;广告(logo):特点是每一帧在固定的位置,且前后文字基本无差异,与内容不相关 |
+ others | Array | 数组元素结构同title;其他噪声(others):画面与内容无关文字,在画面无固定位置,持续时间短,与内容不相关 |
当type=speech时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
startTimestampInSecond | Integer | 在视频中开始时间(以s为单位) |
endTimestampInSecond | Integer | 在视频中结束时间(以s为单位) |
startTimestampInMS | Long | 在视频中开始时间(以ms为单位) |
endTimestampInMS | Long | 在视频中结束时间(以ms为单位) |
statement | String | 当前时间段语音识别结果 |
当type=textrank_speech时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
keyword | Integer | 关键词结果 |
weight | Integer | 置信度 |
time_list | Array | 出现在视频中的时间列表(以s为单位) |
当type=image_classify时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
image | String | 视频抽帧地址 |
timestamp | Integer | 在视频中对应时间 |
blurScore | Double | 清晰度分数 |
classifyResult | Array | 当前抽帧识别结果列表 |
+ class_name | String | 标签 |
+ probability | Double | 标签置信度 |
当type=human_attribute时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 识别结果,一般只有一个元素 |
+ frameResult | Array | 视频帧识别结果列表 |
++ image_url | String | 视频抽帧地址 |
++ human | Array | 当前抽帧识别结果列表 |
+++ id | Integer | 检测框id,从0开始 |
+++ location | Object | 人体位置 |
++++ width | Double | 宽度 |
++++ height | Double | 高度 |
++++ left | Double | 左上角横坐标 |
++++ top | Double | 左上角纵坐标 |
++++ confidence | Double | 置信度 |
+++ attribute | Object | 人体属性描述 |
++++ attr_id | Integer | 属性id |
++++ attr_name | String | 属性名 |
++++ label_id | Integer | 标签id |
++++ label_name | String | 标签名 |
++++ prob | Double | 置信度 |
当type=object_detect时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
image | String | 视频抽帧地址 |
timestamp | Integer | 在视频中对应时间 |
classifyResult | Array | 当前抽帧识别结果列表 |
+ keyword | String | 标签 |
+ score | Double | 置信度 |
+ root | String | 分类信息 |
当type=landmark时,result反序列化后为数组,数组元素的结构如下:
参数 | 类型 | 描述 |
---|---|---|
image | String | 视频抽帧地址 |
timestamp | Integer | 在视频中对应时间 |
result | Array | 当前抽帧识别结果列表 |
+ landmark | String | 标签 |
当type=logo_recognition时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ image | String | 视频抽帧地址 |
+ timestamp | Integer | 在视频中对应时间 |
+ result | Array | 当前抽帧识别结果列表 |
++ name | String | 标签 |
++ probability | Double | 置信度 |
++ location | String | 位置 |
+++ width | Double | 宽度 |
+++ height | Double | 高度 |
+++ left | Double | 左上角横坐标 |
+++ top | Double | 左上角纵坐标 |
++ libName | String | 自定义库名称,仅仅当标签来自自定义logo识别时才有 |
++ labelType | String | LOGO分类 |
当type=unrecognized_face时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ image | String | 视频抽帧地址 |
+ faceUrl | String | 人脸图片地址 |
+ originalFaceUrl | String | 未经过缩放的原始人脸图片地址 |
+ start_frame | Integer | 人脸在视频中开始出现时间 |
+ frame_num | Integer | 人脸在视频中持续出现时间 |
+ location | Object | 人脸位置 |
++ width | Double | 宽度 |
++ height | Double | 高度 |
++ left | Double | 左上角横坐标 |
++ top | Double | 左上角纵坐标 |
++ degree | Double | 偏转角度 |
当type=private_face_tracking时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ faces | Array | 人脸结果 |
++ originalFaceUrl | String | 未经过缩放的原始人脸图片地址 |
++ faceUrl | String | 人脸图片地址 |
++ image | String | 视频抽帧地址 |
++ frame_num | Long | 人脸在视频中持续出现时间 |
++ start_frame | Long | 人脸在视频中开始出现时间 |
++ location | Object | 位置 |
+++ width | Double | 宽度 |
+++ height | Double | 高度 |
+++ left | Double | 左上角横坐标 |
+++ top | Double | 左上角纵坐标 |
++ data | Ojbect | 公众人脸识别结果(包含百科信息) |
+++ name | String | 人名 |
+++ score | Double | 置信度(0~100) |
++ dataList | Array | 自定义库中匹配到的所有结果 |
+++ name | String | 人名 |
+++ score | Double | 置信度(0~100) |
+++ lib | String | 库名 |
当type=private_face_image时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ image | String | 视频抽帧地址 |
+ result | Object | 自定义人脸识别结果 |
++ brief | String | 自定义人物识别结果 |
++ score | Double | 置信度(0~100) |
++ lib | String | 识别结果来源的自定义库名 |
++ userId | String | 人脸结果标识 |
++ location | Object | 位置 |
+++ width | Double | 宽度 |
+++ height | Double | 高度 |
+++ left | Double | 左上角横坐标 |
+++ top | Double | 左上角纵坐标 |
当type=face_recognition_tracking时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ faces | Array | 人脸结果 |
++ originalFaceUrl | String | 未经过缩放的原始人脸图片地址 |
++ faceUrl | String | 人脸图片地址 |
++ image | String | 视频抽帧地址 |
++ frame_num | Long | 人脸在视频中持续出现时间 |
++ start_frame | Long | 人脸在视频中开始出现时间 |
++ location | Object | 位置 |
+++ width | Double | 宽度 |
+++ height | Double | 高度 |
+++ left | Double | 左上角横坐标 |
+++ top | Double | 左上角纵坐标 |
++ data | Ojbect | 公众人脸识别结果 |
+++ name | String | 人名 |
+++ radio | Double | 置信度(0~1) |
当type=face_recognition_thumbnail时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ faces | Array | 人脸结果 |
++ image | String | 视频抽帧地址 |
++ frame_num | Long | 人脸在视频中持续出现时间 |
++ start_frame | Long | 人脸在视频中开始出现时间 |
++ location | Object | 位置 |
+++ width | Double | 宽度 |
+++ height | Double | 高度 |
+++ left | Double | 左上角横坐标 |
+++ top | Double | 左上角纵坐标 |
++ data | Ojbect | 公众人脸识别结果 |
+++ name | String | 人名 |
+++ radio | Double | 置信度(0~1) |
当type=scenario_classify_v2时,result反序列化的结构如下:
参数 | 类型 | 描述 |
---|---|---|
results | Array | 视频帧识别结果列表 |
+ startframe | Long | 开始时间(以s为单位) |
+ endframe | Long | 开始时间(以s为单位) |
+ labels | Array | 标签结果 |
++ name | String | 场景标签 |
++ confidence | Double | 阈值(0~1) |
任务未分析成功时响应示例
HTTP/1.1 400 Bad Request
{
"requestId": "59b2790d-4d1e-4c79-9faf-ce5a8df0b653",
"code": "VcaExceptions.InvalidMedia",
"message": "invalid media: media is ERROR"
}
任务分析成功时响应示例
示例一:type=character
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "character"
"status": "FINISHED",
"result": "[{\"timestamp\":2,\"image\":\"http://bj.bcebos.com/bucket-0/-0a6d8a381e500b89c54b9c1708377927/thumbnail/thumbnail_1s00002.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"words\":[{\"word\":\"今天要下雨\",\"rect\":{\"leftOffsetInPixel\":220,\"topOffsetInPixel\":112,\"widthInPixel\":198,\"heightInPixel\":42},\"confidence\":0.99}]}]"
}
示例二:type=ocr_structure
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "character"
"status": "FINISHED",
"result": "{\"results\":{\"title\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}],\"docs\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}],\"logo\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}],\"others\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}],\"subtitle\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}],\"roll_subtitle\":[{\"word\":\"图片线索题\",\"startTimeInSeconds\":0,\"endTimeInSeconds\":71,\"duration\":61,\"time_list\":[[0,40],[50,54],[57,71]],\"rect\":{\"leftOffsetInPixel\":150,\"topOffsetInPixel\":271,\"widthInPixel\":60,\"heightInPixel\":13}}]}}"
}
示例三:type=speech
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "speech"
"status": "FINISHED",
"result": "[{\"startTimestampInSecond\":0,\"endTimestampInSecond\":14,\"startTimestampInMS\":160,\"endTimestampInMS\":14480,\"statement\":\"在五四青年节来临之际在中国政法大学建校六十五周年前夕中共中央总书记国家主席中央军委主席习近平三日上午来到中国政法大学考察,\"}]"
}
示例四:type=textrank_speech
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "textrank_speech"
"status": "FINISHED",
"result": "[{\"keyword\":\"球队\",\"weight\":100.0,\"time_list\":[[54,57]]},{\"keyword\":\"跑不死\",\"weight\":96.94798263375314,\"time_list\":[[38,46]]},{\"keyword\":\"多赢\",\"weight\":51.33860830688667,\"time_list\":[[46,54]]}]",
"version": "general_V1"
}
示例五:type=image_classify
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "image_classify"
"status": "FINISHED",
"result": "[{\"image\":\"http://bj.bcebos.com/bucket-0/50cbdc5a5cbe24c840f33bb8256c4168/thumbnail/thumbnail_1s00000.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"timestamp\":0,\"classifyResult\":[{\"probability\":0.9964,\"class_name\":\"人物-主持人\"},{\"probability\":0.8213,\"class_name\":\"穿戴-领带\"}]}]"
}
示例六:type=human_attribute
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "human_attribute"
"status": "FINISHED",
"result": "{\"results\":[{\"frameResult\":[{\"image_url\":\"http://bj.bcebos.com/vaas-common-bucket-4/9b08e01b8173685242eaab497ea18a74/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00000.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"human\":[{\"attribute\":[{\"attr_name\":\"衣着风格\",\"label_name\":\"衣着风格-可爱\",\"attr_id\":0,\"label_id\":6,\"prob\":0.774711},{\"attr_name\":\"发型\",\"label_name\":\"发型-染发\",\"attr_id\":1,\"label_id\":6,\"prob\":0.482563}],\"id\":0,\"location\":{\"width\":508,\"confidence\":0.950357,\"height\":665,\"top\":54,\"left\":198}}]}]}]}"
}
示例七:type=object_detect
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "human_attribute"
"status": "FINISHED",
"result": "[{\"image\":\"http://bj.bcebos.com/bucket-0/thumbnail_1s00000.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"timestamp\":0,\"classifyResult\":[{\"keyword\":\"郭志坚\",\"score\":0.698679,\"root\":\"公众人物\"},{\"keyword\":\"人物特写\",\"score\":0.547329,\"root\":\"公众人物\"},{\"keyword\":\"电视屏幕\",\"score\":0.375952,\"root\":\"商品-数码\"}]}]"
}
示例八:type=landmark
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "landmark"
"status": "FINISHED",
"result": "[{\"image\":\"http://bj.bcebos.com/vaas-common-bucket-8/29d070ddb8b8aae9fab831916aeb2386/thumbnailV2/thumbnailV2_1280_1.0_0_30000_1s00000.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"timestamp\":0,\"result\":{\"landmark\":\"故宫博物院\"}}]"
}
示例九:type=logo_recognition
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "xvision_logo"
"status": "FINISHED",
"result":
"{\"results\":[{\"image\":\"http://bj.bcebos.com/bucket-0/thumbnail_00001.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"timestamp\":1,\"result\":[{\"name\":\"oppo\",\"probability\":0.8,\"location\":{\"left\":13,\"top\":9,\"height\":58,\"width\":44}}]}]}"
}
示例十:type=unrecognized_face
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "unrecognized_face"
"status": "FINISHED",
"result": "{\"faces\":[{\"location\":{\"degree\":21.0,\"left\":316.6380310058594,\"top\":79.7761001586914,\"height\":89.0,\"width\":94.0},\"originalFaceUrl\":\"http://bj.bcebos.com/vaas-common-bucket-1/b3a8436dcd80f85f6a3ce2aec14d5826/thumbnailV2/thumbnailV2_1280_1.0_0_30000_1s00013.jpg?x-bce-process=image/rotate,a_-21/crop,x_277,y_145,w_188,h_178&authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"faceUrl\":\"http://bj.bcebos.com/vaas-common-bucket-1/b3a8436dcd80f85f6a3ce2aec14d5826/faceTracking/faceTracking_3_2_1_0.9_0.6_110_thumbnailV2_496759958323490816_true/3-0_face.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"image\":\"http://bj.bcebos.com/vaas-common-bucket-1/b3a8436dcd80f85f6a3ce2aec14d5826/thumbnailV2/thumbnailV2_1280_1.0_0_30000_1s00013.jpg?authorization=bce-auth-v1%2F16f624e4866c485d9b06cb20549edbc2%2F2023-02-15T02%3A51%3A50Z%2F21600%2Fhost%2F059dae5b67328a5d411bc0dfe019350ccc560f3f8c96e04813a0c3005367e9ab\",\"frame_num\":2,\"start_frame\":13}]}"
}
示例十一:type=private_face_tracking
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "private_face_tracking"
"status": "FINISHED",
"result":
"{\"faces\":[{\"location\":{\"degree\":3,\"left\":584,\"top\":203,\"height\":146,\"width\":147},\"originalFaceUrl\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00017.jpg%3Fx-bce-process%3Dimage/rotate%2Ca_-3/crop%2Cx_520%2Cy_165%2Cw_294%2Ch_293?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A23%3A25Z%2F21600%2Fhost%2F96f2685225ba5815a53c0eab84a3993746bbe706954b9d5e2d8a8fd5a4587d09\",\"faceUrl\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/faceTracking/faceTracking_3_1_1_0.9_0.6_110_thumbnailV2_833305020215889920_true/0-17_face.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A23%3A25Z%2F21600%2Fhost%2Fafccb428a9cd84cd7e2f3bb5e20d2982d160574d94b8c0493385db880f14dbbe\",\"image\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00017.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A23%3A25Z%2F21600%2Fhost%2Fc9228ebfee8273a4d3c984fe71ec68c645532411be9c7ed701fe20aa4d0b8aaa\",\"data\":{\"name\":\"自定义人物\",\"score\":99.080558776855},\"dataList\":[{\"name\":\"自定义人物\",\"score\":99.080558776855,\"userId\":\"3cfeb4684b55473498e5a45ebe8317e1\",\"lib\":\"test\"}],\"frame_num\":26,\"start_frame\":0}]}"
}
示例十二:type=private_face_image
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "private_face_image"
"status": "FINISHED",
"result":
"{\"results\":[{\"image\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00000.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A14%3A15Z%2F21600%2Fhost%2F6a618f36f80c52d1c4502dfb0ae044bb6d5534bc68fbb01f99374107836ef37f\",\"result\":[{\"brief\":\"自定义人名\",\"score\":98.579315185547,\"userId\":\"3cfeb4684b55473498e5a45ebe8317e1\",\"lib\":\"test\",\"location\":{\"left\":581,\"top\":212,\"height\":129,\"width\":134}}]}]}"
}
示例十三:type=face_recognition_tracking
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "face_recognition_tracking"
"status": "FINISHED",
"result":
"{\"faces\":[{\"location\":{\"degree\":3,\"left\":584,\"top\":203,\"height\":146,\"width\":147},\"data\":{\"name\":\"公众人物\",\"radio\":0.8342201709747314,\"baikeInfo\":{\"zps\":[],\"nationality\":\"中国\",\"cover\":\"https://bkimg.cdn.bcebos.com/pic/54fbb2fb43166d22ca0c87944a2309f79052d2b3\"}},\"image\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00017.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A32%3A54Z%2F21600%2Fhost%2F02284ff530d8c667ec4c0a146cb3c6c19e2a879dc5dcf767a51344b8d2ddd00c\",\"faceUrl\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/faceTracking/faceTracking_3_1_1_0.9_0.6_110_thumbnailV2_833305020215889920_true/0-17_face.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A32%3A54Z%2F21600%2Fhost%2F286288bd1bfbe8e0e4135818a49ee32d05a4636331159cac40f30d323888369e\",\"originalFaceUrl\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00017.jpg%3Fx-bce-process%3Dimage/rotate%2Ca_-3/crop%2Cx_520%2Cy_165%2Cw_294%2Ch_293?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T05%3A32%3A54Z%2F21600%2Fhost%2F4f7c94273829c89f572247afc80220dcdb4818e0b4fb7c750d5755a32d37688e\",\"frame_num\":26,\"start_frame\":0}]}"
}
示例十四:type=face_recognition_thumbnail
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "face_recognition_thumbnail"
"status": "FINISHED",
"result":
"{\"faces\":[{\"location\":{\"degree\":0,\"left\":583,\"top\":213,\"height\":126,\"width\":133},\"data\":{\"name\":\"习近平\",\"radio\":0.8071078062057495,\"baikeInfo\":{\"zps\":[],\"nationality\":\"中国\",\"cover\":\"https://bkimg.cdn.bcebos.com/pic/54fbb2fb43166d22ca0c87944a2309f79052d2b3\"}},\"image\":\"http://bj-bos-sandbox.baidu-int.com/vca-vaas-common-bucket-2/f7ab5b7e39f29bc717abc8334f9252b8/thumbnailV2/thumbnailV2_false_1280_1.0_0_30000_1s00001.jpg?authorization=bce-auth-v1%2Ffdb884f15a3a4b42ace33be2af84474c%2F2023-02-17T03%3A49%3A22Z%2F21600%2Fhost%2Fa127d3af2b11a59743caf1751b9e08a80ae43cd66921a4aa2ebb7541af1fe202\",\"frame_num\":1,\"start_frame\":1}]}"
}
示例十五:type=scenario_classify_v2
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"type": "scenario_classify_v2"
"status": "FINISHED",
"result": "{\"results\":[{\"startframe\":0,\"endframe\":93,\"labels\":[{\"name\":\"体育-篮球\",\"confidence\":0.73}]}]}",
"version": "general_V2-6"
}
取消视频内容分析
只有状态处于预处理的视频可以进行取消。
请求语法
PUT /v{version}/media HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 视频路径,需要对source进行urlEncode。 | 是 |
cancel | String | 标志参数,不需要取值 | 是 |
请求体
无
请求示例
PUT /v1/media?source=bos%3a%2f%2ftestbucket%2fdir%2fvideo.mp4&cancel HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
响应头域
无
响应体
无
响应示例
HTTP/1.1 200 OK