开发者指南
视频内容分析
MCA 支持对BOS视频、VOD媒资、HTTP(S) URL视频审核。对于不同来源的视频,需要按照如下规则拼接视频路径source
:
- 对于 BOS 视频,
source=bos://{bucket}/{object}
- 对于 VOD 媒资原视频,
source=vod://{mediaId}
- 对于 VOD 媒资转码后视频,
source="vod://<vod-media-id>-<preset>"
- 对于 HTTP(S) URL 视频,
source="<http(s)-url">
说明:
注意:这里的”视频“概念包含视频、音频和图片。
提交视频内容分析
指定视频路径发起视频内容分析。如果使用定制模板,由 MCA 研发人员在后台帮用户创建好模板,然后用户在创建视频时在请求参数或请求体中配置模板名称即可。
分析 BOS 视频
根据BOS bucket和BOS key直接发起分析。需要说明,使用本方法需要将object配置公共GetObject权限,参考设置BOS bucket权限。简述为:在BOS 的控制台中 Bucket 设置-权限设置-自定义权限中添加 MCA 服务账号: 876d365b2f35424898b7ec8630593a50。
MCA 也支持BOS回源,只要在BOS配置了正确的回源地址,参考设置BOS镜像回源,MCA 可以帮助回源并完成分析。
代码示例:
示例一:使用默认模板分析 BOS 视频
public void analyzeBosMedia(VcaClient vcaClient, String bucket, String object) {
vcaClient.analyze("bos://" + bucket + "/" + object);
}
示例二:使用定制模板分析 BOS 视频
public void analyzeBosMedia(VcaClient vcaClient, String bucket, String object, String preset) {
AnalyzeRequest request = new AnalyzeRequest();
request.setSource("bos://" + bucket + "/" + object);
request.setPreset(preset);
vcaClient.analyze(request);
}
示例三:指定标题分析 BOS 视频
public void analyzeBosMedia(VcaClient vcaClient, String bucket, String object, String title) {
vcaClient.analyze("bos://" + bucket + "/" + object, title);
}
分析 VOD 媒资
根据 VOD 媒资ID直接发起分析。
代码示例:
示例一:使用默认模板分析 VOD 媒资
public void analyzeVodMedia(VcaClient vcaClient, String mediaId) {
vcaClient.analyze("vod://" + mediaId);
}
示例二:使用定制模板分析 VOD 媒资
public void analyzeVodMedia(VcaClient vcaClient, String mediaId, String preset) {
AnalyzeRequest request = new AnalyzeRequest();
request.setSource("vod://" + mediaId);
request.setPreset(preset);
vcaClient.analyze(request);
}
示例三:指定标题分析 VOD 媒资
public void analyzeVodMedia(VcaClient vcaClient, String mediaId, String title) {
vcaClient.analyze("vod://" + mediaId, title);
}
分析 HTTP(S) URL 视频
根据url直接发起分析。
代码示例:
示例一:使用默认模板分析 URL 视频
public void analyzeMedia(VcaClient vcaClient, String source) {
vcaClient.analyze(source);
}
示例二:使用定制模板分析 URL 视频
public void analyzeMedia(VcaClient vcaClient, String source, String preset) {
AnalyzeRequest request = new AnalyzeRequest();
request.setSource(source);
request.setPreset(preset);
vcaClient.analyze(request);
}
示例三:指定标题分析 URL 视频
public void analyzeMedia(VcaClient vcaClient, String source, String title) {
vcaClient.analyze(source, title);
}
说明:
分析包含鉴权参数的 URL 视频,将AnalyzeRequest中auth成员设置为鉴权参数即可。 提交媒资分析时还可以配置通知名称,参考
analyze(AnalyzeRequest)
函数。
查询视频内容分析结果
指定视频路径查询对应的分析结果。
代码示例:
public void queryResult(VcaClient vcaClient, String source) {
QueryResultResponse response = vcaClient.queryResult(source);
String status = response.getStatus();
if ("FINISHED".equals(status)) {
for (TagsResult tagsResult: response.getResults()) {
String type = tagsResult.getType();
for (ResultItem item: tagsResult.getResult()) {
String attribute = item.getAttribute();
Double confidence = item.getConfidence();
String source = item.getSource();
List<ResultItem.TimeInSeconds> time = item.getTime();
}
}
}
}
视频分析结果格式和各字段含义参考MCA API。
查询视频内容分析中间任务结果
指定视频路径查询中间任务的分析结果。
代码示例:
public void querySubTaskResult(VcaClient vcaClient, String source, String type) {
QuerySubTaskResponse subTaskResponse = vcaClient.querySubTask(source, type);
String status = subTaskResponse.getStatus();
if ("FINISHED".equals(status)) {
String result = subTaskResponse.getResult();
}
}
视频分析中间任务结果格式和各字段含义参考MCA API。
直播内容分析
MCA 支持对 RTMP/HTTP 进行直播拉流分析。
提交直播内容分析
指定直播路径发起直播内容分析。如果使用定制模板,由 MCA 研发人员在后台帮用户创建好模板,然后再发起分析即可。因为通知名称为必选项,所以需要先在 MCA 管理控制台进行配置,然后在这里使用。
代码示例:
public void analyzeStream(VcaClient vcaClient, String source, String preset, String notification, Integer intervalInSecond) {
StreamAnalyzeRequest streamAnalyzeRequest = new StreamAnalyzeRequest();
streamAnalyzeRequest.setSource(source);
streamAnalyzeRequest.setPreset(preset);
streamAnalyzeRequest.setNotification(notification);
streamAnalyzeRequest.setIntervalInSecond(intervalInSecond);
client.analyzeStream(streamAnalyzeRequest);
}
查询直播内容分析基本信息
代码示例:
public void queryResult(VcaClient vcaClient, String source) {
StreamAnalyzeResponse queryStreamInfo = client.queryStream(source);
}
直播分析基本信息格式和各字段含义参考MCA API。
结束直播内容分析任务
代码示例:
public void cancelStream(VcaClient vcaClient, String source) {
client.stopStream(source);
}
图片内容分析
MCA 针对图片资源单独提供了同步分析接口。图片分析接口只支持BOS与HTTP(s)协议类型的资源,针对这两种类型的source
拼接规则如下:
- 对于 BOS 视频,
source=bos://<bos-bucket>/<bos-object>
- 对于 HTTP(S) URL 视频,
source="<http(s)-url">
说明:
注意:虽然视频分析支持图片类型资源,但图片分析提供更具针对性和准确的分析。建议图片类型的资源直接采用图片分析接口。
提交图片内容分析(同步)
指定图片路径发起图片内容分析。如果使用定制图片分析模板,先由 MCA 研发人员在后台帮用户创建好图片分析模板,然后创建视频时在请求参数或请求体中配置模板名称即可。
分析 BOS 图片
代码示例:
示例一:使用默认模板分析 BOS 图片
public void analyzeBosImage(VcaClient vcaClient, String bucket, String object) {
vcaClient.analyzeImage("bos://" + bucket + "/" + object);
}
示例二:使用定制模板分析 BOS 图片
public void analyzeBosImage(VcaClient vcaClient, String bucket, String object, String preset) {
AnalyzeRequest request = new AnalyzeRequest();
request.setSource("bos://" + bucket + "/" + object);
request.setPreset(preset);
vcaClient.analyzeImage(request);
}
示例三:指定标题分析 BOS 图片
public void analyzeBosImage(VcaClient vcaClient, String bucket, String object, String title) {
vcaClient.analyzeImage("bos://" + bucket + "/" + object, title);
}
分析 HTTP(S) URL 图片
根据URL直接发起分析。
代码示例:
示例一:使用默认模板分析 URL 图片
public void analyzeUrlImage(VcaClient vcaClient, String source) {
vcaClient.analyzeImage(source);
}
示例二:使用定制模板分析 URL 图片
public void analyzeUrlImage(VcaClient vcaClient, String source, String preset) {
AnalyzeRequest request = new AnalyzeRequest();
request.setSource(source);
request.setPreset(preset);
vcaClient.analyzeImage(request);
}
示例三:指定标题分析 URL 图片
public void analyzeUrlImage(VcaClient vcaClient, String source, String title) {
vcaClient.analyzeImage(source, title);
}
说明:
图片分析与视频分析使用两种不同类型的模版,在指定模版名时注意是否存在该图片分析模版。
目前不支持分析包含鉴权参数的 URL 图片。
目前提供的图片分析接口是同步接口,请求后直接返回分析结果,无需后续查询分析结果,参考
analyzeImage(AnalyzeRequest)
函数。
图片摘要分析
图片摘要接口正在邀测阶段,如有需求,请与我们联系
图片摘要分析接口只支持BOS与HTTP(s)协议类型的资源,针对这两种类型的source
拼接规则如下:
- 对于 BOS 视频,
source=bos://<bos-bucket>/<bos-object>
- 对于 HTTP(S) URL 视频,
source="<http(s)-url">
提交图片摘要分析
指定图片路径发起图片摘要分析。(提交图片摘要分析接口每个账号只支持1QPS)
分析 BOS 图片
代码示例:
示例一:分析 BOS 图片
public void analyzeBosImageAbstract(VcaClient vcaClient, String bucket, String object) {
vcaClient.analyzeImageAbstract("bos://" + bucket + "/" + object);
}
分析 HTTP(S) URL 图片
根据URL直接发起分析。
代码示例:
示例一:分析URL 图片
public void analyzeUrlImageAbstract(VcaClient vcaClient, String source) {
vcaClient.analyzeImageAbstract(source);
}
说明:
目前不支持分析包含鉴权参数的 URL 图片。
目前提供的图片摘要分析接口是同步接口,请求后直接返回分析结果,无需后续查询分析结果,参考
analyzeImageAbstract(AnalyzeRequest)
函数。
智能封面分析
MCA 支持对BOS视频、VOD媒资、HTTP(S) URL视频进行封面分析。对于不同来源的视频,需要按照如下规则拼接视频路径source
:
- 对于 BOS 视频,
source=bos://{bucket}/{object}
- 对于 VOD 媒资原视频,
source=vod://{mediaId}
- 对于 VOD 媒资转码后视频,
source="vod://<vod-media-id>-<preset>"
- 对于 HTTP(S) URL 视频,
source="<http(s)-url">
提交视频发起智能封面分析
指定视频路径发起智能封面分析。如果使用定制模板,由 MCA 研发人员在后台帮用户创建好模板,然后再发起分析即可。
分析 BOS 视频
根据BOS bucket和BOS key直接发起分析。需要说明,使用本方法需要将object配置公共GetObject权限,参考设置BOS bucket权限。简述为:在BOS 的控制台中 Bucket 设置-权限设置-自定义权限中添加 MCA 服务账号: 876d365b2f35424898b7ec8630593a50。
代码示例:使用默认模板分析 BOS 视频
public void analyzeBosMedia(VcaClient vcaClient, String bucket, String object) {
vcaClient.analyzeCover("bos://" + bucket + "/" + object);
}
分析 VOD 媒资
根据 VOD 媒资ID直接发起分析。
代码示例:使用默认模板分析 VOD 媒资
public void analyzeVodMedia(VcaClient vcaClient, String mediaId) {
vcaClient.analyzeCover("vod://" + mediaId);
}
分析 HTTP(S) URL 视频
根据url直接发起分析。
代码示例:使用默认模板分析 URL 视频
public void analyzeMedia(VcaClient vcaClient, String source) {
vcaClient.analyzeCover(source);
}
查询智能封面分析结果
指定视频路径查询对应的分析结果。
代码示例:
public void queryResult(VcaClient vcaClient, String source) {
QueryResultResponse response = vcaClient.queryCoverResult(source);
String status = response.getStatus();
if ("FINISHED".equals(status)) {
for (TagsResult tagsResult: response.getResults()) {
CoverAnalyzeResult coverRes = tagsResult.getCoverResult();
}
}
}
封面分析结果格式和各字段含义参考MCA API。
精彩视频分析
MCA 支持对BOS视频、HTTP(S) URL视频进行精彩视频分析。对于不同来源的视频,需要按照如下规则拼接视频路径source
:
- 对于 BOS 视频,
source=bos://{bucket}/{object}
- 对于 HTTP(S) URL 视频,
source="<http(s)-url">
提交视频发起精彩视频分析
指定视频路径发起精彩视频分析。
分析 BOS 视频
根据BOS bucket和BOS key直接发起分析。需要说明,使用本方法需要将object配置公共GetObject权限,参考设置BOS bucket权限。简述为:在BOS 的控制台中 Bucket 设置-权限设置-自定义权限中添加 MCA 服务账号: 876d365b2f35424898b7ec8630593a50。
代码示例:分析 BOS 视频
public void analyzeBosMedia(VcaClient vcaClient, String bucket, String object) {
vcaClient.analyzeHighlight("bos://" + bucket + "/" + object);
}
分析 HTTP(S) URL 视频
根据URL直接发起分析。
代码示例:分析 URL 视频
public void analyzeMedia(VcaClient vcaClient, String source) {
vcaClient.analyzeHighlight(source);
}
查询精彩视频分析结果
指定视频路径查询对应的分析结果。
代码示例:
public void queryResult(VcaClient vcaClient, String source) {
QueryResultResponse response = vcaClient.queryHighlightResult(source);
}
精彩视频分析结果格式和各字段含义参考MCA API。
取消精彩视频分析任务
取消指定视频路径的精彩视频分析。
代码示例:
public void cancel(VcaClient vcaClient, String source) {
vcaClient.cancelHighlightResult(source);
}