You need to enable JavaScript to run this app.
导航

视频剪辑

最近更新时间2024.03.06 15:54:27

首次发布时间2022.07.22 20:20:54

本文为您提供了服务端 Java SDK 的视频剪辑模块相关的 API 调用示例。主要包含:提交编辑任务、查询任务进度、查询任务详情等。

初始化

使用前请先完成初始化,参考初始化

提交剪辑任务

接口请求参数和返回参数详见 OpenAPI:提交剪辑任务

package com.volcengine.example.vod.edit;

import com.google.protobuf.ByteString;
import com.volcengine.service.vod.IVodService;
import com.volcengine.service.vod.impl.VodServiceImpl;
import com.volcengine.service.vod.model.request.VodSubmitDirectEditTaskAsyncRequest;
import com.volcengine.service.vod.model.response.VodSubmitDirectEditTaskAsyncResponse;

import java.nio.charset.StandardCharsets;

public class VodSubmitDirectEditTaskAsyncDemo {

    public static void main(String[] args) {
        IVodService vodService = VodServiceImpl.getInstance();

        // call below method if you dont set ak and sk in ~/.vcloud/config
        vodService.setAccessKey("your ak");
        vodService.setSecretKey("your sk");

        VodSubmitDirectEditTaskAsyncRequest vodSubmitDirectEditTaskAsyncRequest = VodSubmitDirectEditTaskAsyncRequest.newBuilder()
                .setUploader("your space")
                .setApplication("VideoTrackToB")
                .setEditParam(ByteString.copyFromUtf8("your params"))
                .build();

        try {
            VodSubmitDirectEditTaskAsyncResponse vodSubmitDirectEditTaskAsyncResponse = vodService.submitDirectEditTaskAsync(vodSubmitDirectEditTaskAsyncRequest);
            if (vodSubmitDirectEditTaskAsyncResponse.getResponseMetadata().hasError()) {
                System.out.println(vodSubmitDirectEditTaskAsyncResponse.getResponseMetadata().getError());
                System.exit(-1);
            }
            System.out.println(vodSubmitDirectEditTaskAsyncResponse.toString()); // 编码采用UTF8
            System.out.println(vodSubmitDirectEditTaskAsyncResponse.getResponseMetadata().getRequestId());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

查询任务进度

接口请求参数和返回参数详见 OpenAPI:查询任务进度

package com.volcengine.example.vod.edit;

import com.volcengine.service.vod.IVodService;
import com.volcengine.service.vod.impl.VodServiceImpl;
import com.volcengine.service.vod.model.request.VodGetDirectEditProgressRequest;
import com.volcengine.service.vod.model.response.VodGetDirectEditProgressResponse;

public class VodGetDirectEditProgressDemo {

    public static void main(String[] args) throws Exception {
        IVodService vodService = VodServiceImpl.getInstance();
        vodService.setAccessKey("your ak");
        vodService.setSecretKey("your sk");

        VodGetDirectEditProgressRequest vodGetDirectEditProgressRequest = VodGetDirectEditProgressRequest.newBuilder()
                .setReqId("your reqId")
                .build();

        try {
            VodGetDirectEditProgressResponse vodGetDirectEditProgressResponse = vodService.getDirectEditProgress(vodGetDirectEditProgressRequest);
            if (vodGetDirectEditProgressResponse.getResponseMetadata().hasError()) {
                System.out.println(vodGetDirectEditProgressResponse.getResponseMetadata().getError());
                System.exit(-1);
            }
            System.out.println(vodGetDirectEditProgressResponse.toString()); // 如有汉字,请采用UTF8编码方式
            System.out.println(vodGetDirectEditProgressResponse.getResponseMetadata().getRequestId());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

返回结果 Result 参数说明如下所示。

  • 返回的结果 Result 参数为空时,即 Result:{ } ,进度为 0。代码示例如下所示。
ResponseMetadata:{
   RequestId:"2022102***2121601360E968B6F" 
   Action:"GetDirectEditProgress" 
   Version:"2018-01-01" 
   Service:"vod" 
   Region:"cn-north-1"
   } 
Result:{
   }
  • 返回的结果 Result 参数有具体数值时,进度为对应的具体数值。代码示例如下所示。
ResponseMetadata:{
   RequestId:"2022102815***21601360E968B6F" 
   Action:"GetDirectEditProgress" 
   Version:"2018-01-01" 
   Service:"vod" 
   Region:"cn-north-1"
} 
Result:{
   Result:100
}

查询任务详情

接口请求参数和返回参数详见 OpenAPI:查询任务详情

package com.volcengine.example.vod.edit;

import com.google.protobuf.Descriptors;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import com.volcengine.service.vod.IVodService;
import com.volcengine.service.vod.impl.VodServiceImpl;
import com.volcengine.service.vod.model.business.GetDirectEditResult;
import com.volcengine.service.vod.model.request.VodGetDirectEditResultRequest;
import com.volcengine.service.vod.model.response.VodGetDirectEditResultResponse;

import java.util.Map;

public class VodGetDirectEditResultDemo {

    public static void main(String[] args) {
        IVodService vodService = VodServiceImpl.getInstance();

        // call below method if you dont set ak and sk in ~/.vcloud/config
        vodService.setAccessKey("your ak");
        vodService.setSecretKey("your sk");


        VodGetDirectEditResultRequest vodGetDirectEditResultRequest = VodGetDirectEditResultRequest.newBuilder()
                .addReqIds("your reqId")
                .build();

        try {
            VodGetDirectEditResultResponse vodGetDirectEditResultResponse = vodService.getDirectEditResult(vodGetDirectEditResultRequest);
            if (vodGetDirectEditResultResponse.getResponseMetadata().hasError()) {
                System.out.println(vodGetDirectEditResultResponse.getResponseMetadata().getError());
                System.exit(-1);
            }
            System.out.println(vodGetDirectEditResultResponse.toString()); // 如有汉字,请采用UTF8编码方式
            System.out.println(vodGetDirectEditResultResponse.getResponseMetadata().getRequestId());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}