package com.ruoyi.web.controller.test;
import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;
/**
* @Classname MediaProducingJobSample
* @Description videoSlip
* @Date 2023/11/20 11:10
* @Created by CaoJun
*/
public class MediaProducingJobSample {
public static void main(String[] args) throws Exception {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 本示例以将AccessKey ID和 AccessKey Secret保存在环境变量为例说明。配置方法请参见:https://help.aliyun.com/document_detail/378657.html
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config();
config.setCredential(credentialClient);
// 如需硬编码AccessKey ID和AccessKey Secret,代码如下,但强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// config.accessKeyId = <yourAccessKeyId>;
// config.accessKeySecret = <yourAccessKeySecret>;
config.endpoint = "ice.cn-hangzhou.aliyuncs.com";
Client client = new Client(config);
// 通过Timeline创建合成任务
SubmitMediaProducingJobRequest submitMediaProducingJobRequest1 = new SubmitMediaProducingJobRequest();
submitMediaProducingJobRequest1.setTimeline("{\n" +
" \"VideoTracks\": [\n" +
" {\n" +
" \"VideoTrackClips\": [\n" +
" {\n" +
" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +
" \"In\": 1,\n" +
" \"Out\": 4,\n" +
" \"Effects\": [\n" +
" {\n" +
" \"Type\": \"Transition\",\n" +
" \"SubType\": \"bowTieHorizontal\",\n" +
" \"Duration\": 1\n" +
" },\n" +
" {\n" +
" \"Type\": \"Volume\",\n" +
" \"Gain\": \"0\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +
" \"In\": 40,\n" +
" \"Out\": 50,\n" +
" \"Effects\": [\n" +
" {\n" +
" \"Type\": \"Transition\",\n" +
" \"SubType\": \"crosswarp\",\n" +
" \"Duration\": 1\n" +
" }\n" +
" ]\n" +
" \n" +
" },\n" +
" {\n" +
" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +
" \"In\": 90,\n" +
" \"Out\": 100\n" +
" \n" +
" \n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"AudioTracks\": [\n" +
" {\n" +
" \"AudioTrackClips\": [\n" +
" {\n" +
" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/%E7%BE%A4%E6%98%9F%20-%20%E5%8D%81%E9%80%81%E7%BA%A2%E5%86%9B.mp3\",\n" +
" \"TimelineIn\":0\n" +
" }\n" +
" ]\n" +
" }\n" +
" ]\n" +
"}");
submitMediaProducingJobRequest1.setOutputMediaConfig("{\"MediaURL\":\"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/example.mp4\"}");
submitMediaProducingJobRequest1.setProjectMetadata("{\"coverURL\":\"http://test.sample.com/mediaid.jpg\",\"description\":\"description\",\"title\":\"title\",\"tags\":\"Tag1,Tag2,Test\"}");
SubmitMediaProducingJobResponse submitMediaProducingJobResponse1 = client.submitMediaProducingJob(submitMediaProducingJobRequest1);
System.out.println("requestId : " + submitMediaProducingJobResponse1.getBody().getRequestId());
System.out.println("jobId : " + submitMediaProducingJobResponse1.getBody().getJobId());
System.out.println("projectId : " + submitMediaProducingJobResponse1.getBody().getProjectId());
// // 通过TemplateId创建合成任务
// SubmitMediaProducingJobRequest submitMediaProducingJobRequest2 = new SubmitMediaProducingJobRequest();
// submitMediaProducingJobRequest2.setTemplateId("IceSys_VideoMerge");
// submitMediaProducingJobRequest2.setClipsParam("{\"VideoArray\":[\"****05512043f49f697f7425****\",\"****2788e810116a45109f2e****\",\"****67f44f4964e6c998dee8****\",]}");
// submitMediaProducingJobRequest2.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");
// SubmitMediaProducingJobResponse submitMediaProducingJobResponse2 = client.submitMediaProducingJob(submitMediaProducingJobRequest2);
// System.out.println("requestId : " + submitMediaProducingJobResponse2.getBody().getRequestId());
// System.out.println("jobId : " + submitMediaProducingJobResponse2.getBody().getJobId());
// System.out.println("projectId : " + submitMediaProducingJobResponse2.getBody().getProjectId());
//
// // 通过ProjectId创建合成任务
// SubmitMediaProducingJobRequest submitMediaProducingJobRequest3 = new SubmitMediaProducingJobRequest();
// submitMediaProducingJobRequest3.setProjectId("****67f44f4964e6c998dee8****");
// submitMediaProducingJobRequest3.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");
// SubmitMediaProducingJobResponse submitMediaProducingJobResponse3 = client.submitMediaProducingJob(submitMediaProducingJobRequest3);
// System.out.println("requestId : " + submitMediaProducingJobResponse3.getBody().getRequestId());
// System.out.println("jobId : " + submitMediaProducingJobResponse3.getBody().getJobId());
// System.out.println("projectId : " + submitMediaProducingJobResponse3.getBody().getProjectId());
// 获取单个合成任务
GetMediaProducingJobRequest request = new GetMediaProducingJobRequest();
request.setJobId(submitMediaProducingJobResponse1.getBody().getJobId());
GetMediaProducingJobResponse reqponse = client.getMediaProducingJob(request);
System.out.println("jobId : " + reqponse.getBody().getMediaProducingJob().getJobId());
System.out.println("status : " + reqponse.getBody().getMediaProducingJob().getStatus());
//
// // 通过直播流区间提交合成
// SubmitLiveEditingJobRequest submitLiveEditingJobRequest = new SubmitLiveEditingJobRequest();
// submitLiveEditingJobRequest.setClips("{\"StartTime\": \" 2021-06-21T08:01:00Z\", \"EndTime\": \" 2021-06-21T08:03:00Z\"}");
// submitLiveEditingJobRequest.setProjectId("****fddd7748b58bf1d47e95****");
// submitLiveEditingJobRequest.setLiveStreamConfig("{ \"AppName\": \"app\", \"DomainName\": \"domain.com\", \"StreamName\": \"stream\" }");
// submitLiveEditingJobRequest.setOutputMediaConfig("{ \"MediaURL\": \"https://example-bucket.oss-cn-shanghai.aliyuncs.com/testfile.mp4\" }");
// submitLiveEditingJobRequest.setMediaProduceConfig("{ \"Mode\": \"AccurateFast\"}");
// submitLiveEditingJobRequest.setUserData("{\"key\": \"value\"}");
// submitLiveEditingJobRequest.setOutputMediaTarget("oss-object");
// SubmitLiveEditingJobResponse submitLiveEditingJobResponse = client.submitLiveEditingJob(submitLiveEditingJobRequest);
// System.out.println("jobId:"+submitLiveEditingJobResponse.getBody().getJobId());
// System.out.println("requestid:"+submitLiveEditingJobResponse.getBody().getRequestId());
//
// // 通过直播JobId获取单个信息
// GetLiveEditingJobRequest getLiveEditingJobRequest = new GetLiveEditingJobRequest();
// getLiveEditingJobRequest.setJobId("****d80e4e4044975745c14b****");
// GetLiveEditingJobResponse getLiveEditingJobResponse = client.getLiveEditingJob(getLiveEditingJobRequest);
// System.out.println("state:"+getLiveEditingJobResponse.getBody().getLiveEditingJob().getStatus());
}
}
package com.ruoyi.web.controller.test;
/**
* @Classname Sample
* @Description Sample
* @Date 2023/12/1 10:56
* @Created by CaoJun
*/
import com.alibaba.fastjson2.JSONObject;
import com.aliyun.teautil.Common;
import java.util.Map;
public class Sample {
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = "ice.cn-hangzhou.aliyuncs.com";
return new com.aliyun.teaopenapi.Client(config);
}
/**
* 使用STS鉴权方式初始化账号Client,推荐此方式。
* @param accessKeyId
* @param accessKeySecret
* @param securityToken
* @return Client
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClientWithSTS(String accessKeyId, String accessKeySecret, String securityToken) throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret)
// 必填,您的 Security Token
.setSecurityToken(securityToken)
// 必填,表明使用 STS 方式
.setType("sts");
// Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = "ice.cn-hangzhou.aliyuncs.com";
return new com.aliyun.teaopenapi.Client(config);
}
/**
* API 相关
* @return OpenApi.Params
*/
public static com.aliyun.teaopenapi.models.Params createApiInfo() {
com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
// 接口名称
.setAction("GetMediaProducingJob")
// 接口版本
.setVersion("2020-11-09")
// 接口协议
.setProtocol("HTTPS")
// 接口 HTTP 方法
.setMethod("GET")
.setAuthType("AK")
.setStyle("RPC")
// 接口 PATH
.setPathname("/")
// 接口请求体内容格式
.setReqBodyType("json")
// 接口响应体内容格式
.setBodyType("json");
return params;
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
// 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
com.aliyun.teaopenapi.Client client = Sample.createClient("LTAI5tLESUxMFjbRHtDpceq","8irYrMP70QpwCZwjsA7acCQYI0bFQ");
com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo();
// query params
java.util.Map<String, Object> queries = new java.util.HashMap<>();
queries.put("JobId", "ee936d3da1bd48df9fa5a79456c45d07");
// runtime options
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions()
.setIgnoreSSL(true)
.setAutoretry(true)
.setMaxAttempts(3);
com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
.setQuery(com.aliyun.openapiutil.Client.query(queries));
// 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
java.util.Map<String, Object> resp = (Map<String, Object>) client.callApi(params, request, runtime);
Object o = resp.get("body");
System.out.println(o);
Object o1 = resp.get("statusCode");
System.out.println(o1);
System.out.println(resp.get("headers"));
}
}