简介
本文档提供关于提交音视频转封装任务相关的 API 概览以及 SDK 示例代码。
API | 操作描述 |
提交音视频转封装任务 |
SDK API 参考
提交音视频转封装任务
功能说明
提交音视频转封装任务
注意
COS Android SDK 版本需要大于等于 v5.9.14。
示例代码
// 存储桶名称,格式为 BucketName-APPIDString 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() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {// result 提交音视频转封装任务的结果// 详细字段请查看api文档或者SDK源码SubmitMediaSegmentJobResult result = (SubmitMediaSegmentJobResult) cosResult;}@Overridepublic void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
说明