阿里云智能媒体服务剪辑并拼接视频

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"));


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想买CT5的小曹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值