视频内容分析VCA

    开发者指南

    视频分析

    VCA 支持对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">

    说明:

    注意:这里的”视频“概念包含视频、音频和图片。

    提交视频分析

    指定视频路径发起视频分析。如果使用定制模板,由 VCA 研发人员在后台帮用户创建好模板,然后用户在创建视频时在请求参数或请求体中配置模板名称即可。

    分析 BOS 视频

    根据BOS bucket和BOS key直接发起分析。需要说明,使用本方法需要将object配置公共GetObject权限,参考设置BOS bucket权限。简述为:在BOS 的控制台中 Bucket 设置-权限设置-自定义权限中添加 VCA 服务帐号: 876d365b2f35424898b7ec8630593a50。

    VCA 也支持BOS回源,只要在BOS配置了正确的回源地址,参考设置BOS镜像回源,VCA 可以帮助回源并完成分析。

    代码示例:

    示例一:使用默认模板分析 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();
                }
            }
        }
    }

    视频分析结果格式和各字段含义参考VCA 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();
    	}
    }

    视频分析中间任务结果格式和各字段含义参考VCA API

    上一篇
    安装VCA-Java-SDK
    下一篇
    版本更新记录