普通模版创建及使用
本篇文章介绍通过控制台和API创建及使用普通模板。
通过控制台或API创建的模板,均可通过API使用,从而达到批量生产的目标。
系统内置了一些普通模板-公共模板库,无需创建即可直接使用。
通过控制台创建及使用
控制台创建普通模板
1、基于云剪辑工程导出普通模板

2、选中可变素材,设置为可替换,并设置ID命名。点击右上角导出,即可创建普通模板。

通过控制台使用
1、普通模板列表页,选择要使用的模板,点击使用模板

2、此时控制台会基于模板新创建一个工程,即可正常使用

通过API使用模板
由控制台创建的模板,可以通过API来使用,从而进行批量视频生成。
使用模板ID和ClipsParam提交剪辑合成任务,即可使用模板。模板ID通过控制台即可获得,接下来介绍如何生成ClipsParam:
方式1:根据ID命名拼接
控制台创建的模板,通过ID命名,即可拼出ClipsParam。如下面设置的ID命名:

则对应的ClipsParam为:
{
"1": "替换后的字幕",
"2": "****20b48fb04483915d4f2cd8ac****",
"3": "****20b48fb04483915d4f2cd8ac****",
"4": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video1.mp4",
"5": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video2.mp4"
}
即:ID命名为key,需要替换的文案或媒资ID为value。
使用模板时,ClipsParam中的MediaId可以使用ICE的MediaId、VOD的MediaId,OSS地址,可以混合使用,以下ClipsParam相同。
方式2:调用GetTemplate获取ClipsParam
使用TemplateId调用获取模板信息接口,返回结果中的ClipsParam字段如下:
{"1":"text","2":"mediaId","3":"mediaId","4":"mediaId","5":"mediaId"}
此为ClipsParam示例,value中的text换成文案,mediaId换成真实的MediaId,或OSS地址,即可得到最终的ClipsParam。
有了模板ID和ClipsParam即可调用提交剪辑合成作业接口即可使用模板提交合成,代码示例:
SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest();
request.setTemplateId("Your TemplateId");
request.setClipsParam("{\"1\":\"替换的字幕\",\"2\":\"****20b48fb04483915d4f2cd8ac****\",\"3\":\"****20b48fb04483915d4f2cd8ac****\",\"4\":\"****20b48fb04483915d4f2cd8ac****\",\"5\":\"****20b48fb04483915d4f2cd8ac****\"}");
request.setOutputMediaConfig("{\"MediaURL\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.mp4\"}");
SubmitMediaProducingJobResponse response = iceClient.submitMediaProducingJob(request);
System.out.println("jobid : " + response.getBody().getJobId());
通过API创建及使用
普通模板Config是基于云剪辑Timeline的一个封装,自定义模板Config会更加灵活,建议有特殊需求的客户熟悉Config结构并熟练自定义模板,普通模板Config详解。
普通模板Config示例
以下为视频拼接模板Config:
{
"VideoTracks": [
{
"VideoTrackClips": [
{
"Sys_Type" : "ArrayItems",
"Sys_ArrayObject" : "$VideoArray",
"Sys_Template" : {
"MediaId" : "$MediaId"
}
}
]
}
]
}
更多模板Config示例见:普通模板Config示例
通过API创建模板
调用创建模板接口,传入Config,注意普通模板Type取值为Timeline。
代码示例:
AddTemplateRequest request = new AddTemplateRequest();
request.setType("Timeline");
request.setName("普通模板测试");
request.setConfig("{\"VideoTracks\":[{\"VideoTrackClips\":[{\"Sys_Type\":\"ArrayItems\",\"Sys_ArrayObject\":\"$VideoArray\",\"Sys_Template\":{\"MediaId\":\"$MediaId\"}}]}]}");
AddTemplateResponse response = iceClient.addTemplate(request);
System.out.println("templateId : " + response.getBody().getTemplate().getTemplateId());
创建成功后,会返回模板ID,在合成时使用。
通过API使用模板
使用模板需要模板ID和ClipsParam。接下来介绍如何生成ClipsParam:
方式1:ClipsParam规则
上面Config中的参数为VideoArray,为数组参数,则ClipsParam为:
{
"VideoArray": [
"****05512043f49f697f7425****",
"****2788e810116a45109f2e****",
"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video1.mp4",
"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video2.mp4"
]
}
即value为需要替换的媒资ID数组,或OSS地址数组(可以混合)。
方式2:调用GetTemplate获取ClipsParam
使用TemplateId调用获取模板信息接口,返回结果中的ClipsParam字段如下:
{"VideoArray":["mediaId"]}
此为ClipsParam示例,value为数组,将其换为真实的mediaId数组,或OSS地址数组(可以混合),即可得到最终的ClipsParam。
调用提交剪辑合成作业接口代码示例:
SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest();
request.setTemplateId("Your TemplateId");
request.setClipsParam("{\"VideoArray\":[\"****05512043f49f697f7425****\",\"****2788e810116a45109f2e****\",\"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video1.mp4\",\"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video2.mp4\"]}");
request.setOutputMediaConfig("{\"MediaURL\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.mp4\"}");
SubmitMediaProducingJobResponse response = iceClient.submitMediaProducingJob(request);
System.out.println("jobid : " + response.getBody().getJobId());
相关文档: