提交音视频转封装任务

最近更新时间:2023-07-25 18:02:32

我的收藏

简介

本文档提供关于提交音视频转封装任务相关的 API 概览以及 SDK 示例代码。
API
操作描述
提交音视频转封装任务

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API

提交音视频转封装任务

功能说明

提交音视频转封装任务
注意
COS Android SDK 版本需要大于等于 v5.9.14。

示例代码

// 存储桶名称,格式为 BucketName-APPID
String bucket = "examplebucket-1250000000";
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
String object = "dir1/exampleobject.mp4";
// 输出路径文件夹
String outputResultPath = "media/job_result/";
SubmitMediaSegmentJobRequest request = new SubmitMediaSegmentJobRequest(bucket);
SubmitMediaSegmentJob submitMediaSegmentJob = new SubmitMediaSegmentJob();
SubmitMediaSegmentJob.SubmitMediaSegmentJobInput input = new SubmitMediaSegmentJob.SubmitMediaSegmentJobInput();
// 文件路径
input.object = object;
submitMediaSegmentJob.input = input;
SubmitMediaSegmentJob.SubmitMediaSegmentJobOperation operation = new SubmitMediaSegmentJob.SubmitMediaSegmentJobOperation();
SubmitMediaSegmentJob.SubmitMediaSegmentJobOutput output = new SubmitMediaSegmentJob.SubmitMediaSegmentJobOutput();
// 输出存储桶地域
output.region = "ap-guangzhou";
// 输出存储桶
output.bucket = bucket;
// 输出结果的文件名,如果设置了Duration, 且 Format 不为 HLS 或 m3u8 时,文件名必须包含${number}参数作为自定义转封装后每一小段音/视频流的输出序号;是否必传:是;
output.object = outputResultPath+"MediaSegment-${number}";
operation.output = output;
SubmitMediaSegmentJob.SubmitMediaSegmentJobSegment segment = new SubmitMediaSegmentJob.SubmitMediaSegmentJobSegment();
// 封装格式;是否必传:是;限制:aac、mp3、flac、mp4、ts、mkv、avi、hls、m3u8;
segment.format = "mp4";
// 转封装时长,单位:秒;是否必传:否;限制:不小于5的整数;
segment.duration = "5";
SubmitMediaSegmentJob.SubmitMediaSegmentJobHlsEncrypt hlsEncrypt = new SubmitMediaSegmentJob.SubmitMediaSegmentJobHlsEncrypt();
// 是否开启 HLS 加密;是否必传:否;默认值:false;限制:1. true/false 2. Segment.Format 为 HLS 时支持加密;
hlsEncrypt.isHlsEncrypt = "true";
// HLS 加密的 key;是否必传:否;默认值:无;限制:当 IsHlsEncrypt 为 true 时,该参数才有意义;
hlsEncrypt.uriKey = "test-key";
segment.hlsEncrypt = hlsEncrypt;
operation.segment = segment;
// 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0;是否必传:否;
operation.jobLevel = "0";
submitMediaSegmentJob.operation = operation;
// 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否;
submitMediaSegmentJob.callBackFormat = "XML";
// 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否;
submitMediaSegmentJob.callBackType = "Url";
// 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否;
submitMediaSegmentJob.callBack = "http://callback.demo.com";
request.setSubmitMediaSegmentJob(submitMediaSegmentJob);
// 更多配置请查看api文档或者SDK源码
ciService.submitMediaSegmentJobAsync(request, new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {
// result 提交音视频转封装任务的结果
// 详细字段请查看api文档或者SDK源码
SubmitMediaSegmentJobResult result = (SubmitMediaSegmentJobResult) cosResult;
}
@Override
public void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {
if (clientException != null) {
clientException.printStackTrace();
} else {
serviceException.printStackTrace();
}
}
});
说明
更多完整示例,请前往 GitHub 查看。