简介
本文档提供关于提交视频转动图任务相关的 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/";SubmitAnimationJobRequest request = new SubmitAnimationJobRequest(bucket);SubmitAnimationJob submitAnimationJob = new SubmitAnimationJob();SubmitAnimationJob.SubmitAnimationJobInput input = new SubmitAnimationJob.SubmitAnimationJobInput();// 文件路径input.object = object;submitAnimationJob.input = input;SubmitAnimationJob.SubmitAnimationJobOutput output = new SubmitAnimationJob.SubmitAnimationJobOutput();// 输出存储桶地域output.region = "ap-guangzhou";// 输出存储桶output.bucket = bucket;// 输出结果的文件名;是否必传:是;output.object = outputResultPath+"video_animation.${ext}";// 操作配置SubmitAnimationJob.SubmitAnimationJobOperation operation = new SubmitAnimationJob.SubmitAnimationJobOperation();operation.output = output;SubmitAnimationJob.SubmitAnimationJobAnimation animation = new SubmitAnimationJob.SubmitAnimationJobAnimation();TemplateAnimation.TemplateAnimationContainer container = new TemplateAnimation.TemplateAnimationContainer();// 封装格式:gif,hgif,webp hgif 为高质量 gif,即清晰度比较高的 gif 格式图;是否必传:是;container.format = "gif";TemplateAnimation.TemplateAnimationVideo video = new TemplateAnimation.TemplateAnimationVideo();// 编解码格式;是否必传:是;默认值:无;限制:gif, webp;video.codec = "gif";// 宽;是否必传:否;默认值:视频原始宽度;限制:值范围:[128,4096]单位:px若只设置 Width 时,按照视频原始比例计算 Height;video.width = "300";// 高;是否必传:否;默认值:视频原始高度;限制:值范围:[128,4096]单位:px若只设置 Height 时,按照视频原始比例计算 Width;video.height = "200";// 帧率;是否必传:否;默认值:视频原始帧率;限制:值范围���(0,60]单位:fps如果不设置,那么播放速度按照原来的时间戳。这里设置 fps 为动图的播放帧率;video.fps = "15";// 动图只保留关键帧 。若 AnimateOnlyKeepKeyFrame 设置为 true 时,则不考虑 AnimateTimeIntervalOfFrame、AnimateFramesPerSecond;AnimateOnlyKeepKeyFrame 设置为 false 时,则必须填写AnimateTimeIntervalOfFrame 或 AnimateFramesPerSecond;是否必传:否;默认值:false;限制:true、fal动图保留关键帧参数优先级:AnimateFramesPerSecond > AnimateOnlyKeepKeyFrame > AnimateTimeIntervalOfFrame;video.animateOnlyKeepKeyFrame = "true";TemplateAnimation.TemplateAnimationTimeInterval timeInterval = new TemplateAnimation.TemplateAnimationTimeInterval();// 开始时间;是否必传:否;默认值:0;限制: [0 视频时长] 单位为秒 支持 float 格式,执行精度精确到毫秒;timeInterval.start = "0";// 持续时间;是否必传:否;默认值:视频时长;限制: [0 视频时长] 单位为秒 支持 float 格式,执行精度精确到毫秒;timeInterval.duration = "60";// 同创建动图模板接口中的 Request.TimeInterval;是否必传:否;animation.timeInterval = timeInterval;// 同创建动图模板接口中的 Request.Video;是否必传:否;animation.video = video;// 同创建动图模板接口中的 Request.Container;是否必传:否;animation.container = container;// 该任务的参数operation.animation = animation;// 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0;是否必传:否;operation.jobLevel = "0";// 透传用户信息, 可打印的 ASCII 码, 长度不超过1024;是否必传:否;operation.userData = "userData";submitAnimationJob.operation = operation;// 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否;submitAnimationJob.callBackFormat = "XML";// 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否;submitAnimationJob.callBackType = "Url";// 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否;submitAnimationJob.callBack = "http://callback.demo.com";// 更多配置请查看api文档或者SDK源码request.setSubmitAnimationJob(submitAnimationJob);ciService.submitAnimationJobAsync(request, new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {// result 提交视频转动图任务的结果// 详细字段请查看api文档或者SDK源码SubmitAnimationJobResult result = (SubmitAnimationJobResult) cosResult;}@Overridepublic void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
说明