• oss 视频转码


    一,账号需要有oss和mps的权限

    java sdk通过 accessKeyId和accessKeySecret可以调用接口。

    但是你这个授权用户,还需要oss和mps两个权限

    二,创建一个管道

    这个很方便,直接在下面创建

    https://mps.console.aliyun.com/pipeline/list

    三,代码

    public ApiResult<FileVO> test2() {
            String accessKeyId = "xxx";
            String accessKeySecret = "xxx";
            String mpsRegionId = "cn-hangzhou";
            String pipelineId = "xxx";
    //模板配置的是转码方案,你也可以直接通过代码实现例如:container.put("Format", "mp4");
            String templateId = "xxx";
            String ossLocation = "oss-cn-hangzhou";
    //例如: myBucket-qa
            String ossBucket = "xxx";
    //资源路径:具体的文件夹+文件(没有文件夹的话,自行去掉)
            String ossInputObject = "advertisement/00f89c4c623948d3b8a068d8b9de089c.mp4";
    //转码后的资源路径
            String ossOutputObject = "advertisement/output.mp4";
            // 创建DefaultAcsClient实例并初始化
            DefaultProfile profile = DefaultProfile.getProfile(
                    mpsRegionId,      // 地域ID
                    accessKeyId,      // RAM账号的AccessKey ID
                    accessKeySecret); // RAM账号Access Key Secret
            IAcsClient client = new DefaultAcsClient(profile);
            // 创建API请求并设置参数
            SubmitJobsRequest request = new SubmitJobsRequest();
            // Input
            JSONObject input = new JSONObject();
            input.put("Location", ossLocation);
            input.put("Bucket", ossBucket);
            try {
                input.put("Object", URLEncoder.encode(ossInputObject, "utf-8"));
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException("input URL encode failed");
            }
            request.setInput(input.toJSONString());
            // Output
            String outputOSSObject;
            try {
                outputOSSObject = URLEncoder.encode(ossOutputObject, "utf-8");
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException("output URL encode failed");
            }
            JSONObject output = new JSONObject();
            output.put("OutputObject", outputOSSObject);
            // Ouput->Container
            JSONObject container = new JSONObject();
            container.put("Format", "mp4");
            output.put("Container", container.toJSONString());
            // Ouput->TemplateId
    //        output.put("TemplateId", templateId);
            JSONArray outputs = new JSONArray();
            outputs.add(output);
            request.setOutputs(outputs.toJSONString());
            request.setOutputBucket(ossBucket);
            request.setOutputLocation(ossLocation);
            // PipelineId
            request.setPipelineId(pipelineId);
            // 发起请求并处理应答或异常
            SubmitJobsResponse response;
            try {
                response = client.getAcsResponse(request);
                System.out.println("RequestId is:" + response.getRequestId());
                if (response.getJobResultList().get(0).getSuccess()) {
                    System.out.println("JobId is:" + response.getJobResultList().get(0).getJob().getJobId());
                } else {
                    System.out.println("SubmitJobs Failed code:" + response.getJobResultList().get(0).getCode() +
                            " message:" + response.getJobResultList().get(0).getMessage());
                }
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                e.printStackTrace();
            }
            return null;
        }

    四,结果:

  • 相关阅读:
    为什么你需要升级 pip
    将py文件封装为exe
    Kafka原理分析之基础篇
    顶象验证码破解与研究
    优秀学员学习总结分享(三)
    优秀学员学习总结分享(二)
    ES6数组的扩展--Array.from()和Array.of()
    ES6核心特性
    优秀学员学习总结分享(一)
    JavaScript常见的六种继承方式
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/15347189.html
Copyright © 2020-2023  润新知