智能生产制作支持使用高级模板进行视频剪辑,实现复杂动效样式的高级媒体效果。通过阅读本文,您可以了解创建并使用高级模板的方法。
创建高级模板
通过控制台上传
通过OpenAPI创建
调用AddTemplate创建模板,传入config(高级模板OSS地址)。
AddTemplateRequest request = new AddTemplateRequest();
request.setType("VETemplate");
request.setName("高级模板测试");
request.setConfig("{\"oss_url\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.zip\"}");
AddTemplateResponse response = iceClient.addTemplate(request);
System.out.println("templateId : " + response.getBody().getTemplate().getTemplateId());
说明
此处高级模板oss_url
的值(OSS地址)为示例值,请根据实际情况设置。
使用高级模板
通过控制台使用
使用高级模板进行剪辑,请参见使用高级模板进行云剪辑。
通过OpenAPI使用
获取模板信息。
调用GetTemplate获取模板信息,传入
TemplateId
。GetTemplateRequest request = new GetTemplateRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); GetTemplateResponse response = iceClient.getTemplate(request); GetTemplateResponseBody.GetTemplateResponseBodyTemplate template = response.getBody().getTemplate(); System.out.println("templateId : " + template.getTemplateId()); System.out.println("clipsParam : " + template.getClipsParam());
返回示例如下所示:
{ "RequestId":"******11-DB8D-4A9A-875B-275798******", "Template":{ "TemplateId":"****20b48fb04483915d4f2cd8ac****", "Name":"高级模板测试", "Type":"VETemplate", "Status":"Available", "ModifiedSource":"OpenAPI", "CreateSource":"OpenAPI", "Config":"{\"oss_url\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.zip\"}", "ClipsParam":"{\"Text7\":\"text\",\"Text6\":\"text\",\"Text5\":\"text\",\"Text4\":\"text\",\"Text3\":\"text\",\"Text2\":\"text\",\"Text1\":\"text\",\"Text0\":\"text\",\"Media3\":\"mediaId\",\"Media2\":\"mediaId\",\"Media1\":\"mediaId\",\"Media0\":\"mediaId\"}", "PreviewMedia":"", "CoverURL":"" } }
说明您也可以使用系统内置模板,使用方式与上述使用个人创建模板类似,不再重复介绍。系统内置模板请参见公共模板库——高级模板。
根据实际需求替换以上步骤返回示例中
ClipsParam
参数的text
和mediaId
字段。{ "Text0":"字幕0", "Text1":"字幕1", "Text2":"字幕2", "Text3":"字幕3", "Text4":"字幕4", "Text5":"字幕5", "Text6":"字幕6", "Text7":"字幕7", "Media0":"****20b48fb04483915d4f2cd8ac****", "Media1":"****20b48fb04483915d4f2cd8ac****", "Media2":"****20b48fb04483915d4f2cd8ac****", "Media3":"****20b48fb04483915d4f2cd8ac****" }
说明ClipsParam
为合成服务的参数,您可以根据实际需求替换text为指定的文案,替换mediaId为指定的媒资ID或对应的OSS地址(包括视频和图片),支持混合使用。如果参数
ClipsParam
只设置了部分字段,未设置的字幕默认为空,媒资默认为模板的原始素材。字幕支持设置字体,视频、图片支持设置适配模式,详情请参见扩展功能。
调用合成服务。
调用SubmitMediaProducingJob提交剪辑合成作业,传入
TemplateId
和ClipsParam
。SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); request.setClipsParam("{\"Text7\":\"字幕7\",\"Text6\":\"字幕6\",\"Text5\":\"字幕5\",\"Text4\":\"字幕4\",\"Text3\":\"字幕3\",\"Text2\":\"字幕2\",\"Text1\":\"字幕1\",\"Text0\":\"字幕0\",\"Media3\":\"****20b48fb04483915d4f2cd8ac****\",\"Media2\":\"****20b48fb04483915d4f2cd8ac****\",\"Media1\":\"****20b48fb04483915d4f2cd8ac****\",\"Media0\":\"****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());
扩展功能
设置视频、图片的适配模式
使用.adapt_type
设置视频、图片的缩放模式,取值范围:
0:不适配。
1:居中填满。
2:完整居中显示。
3:不等比缩放。
{
"Text7":"字幕7",
"Text6":"字幕6",
"Text5":"字幕5",
"Text4":"字幕4",
"Text3":"字幕3",
"Text2":"字幕2",
"Text1":"字幕1",
"Text0":"字幕0",
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg",
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg",
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg",
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg",
"Media3.adapt_type":0,
"Media2.adapt_type":1,
"Media1.adapt_type":2,
"Media0.adapt_type":3
}
修改字幕字体
使用.font_file
设置字幕字体,也支持设置OSS地址使用自有字体。字体列表请参见字体列表。
{
"Text7.font_file":"SimSun",
"Text6.font_file":"Yuanti",
"Text5.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font1.ttf",
"Text4.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font2.ttf",
"Text7":"字幕7",
"Text6":"字幕6",
"Text5":"字幕5",
"Text4":"字幕4",
"Text3":"字幕3",
"Text2":"字幕2",
"Text1":"字幕1",
"Text0":"字幕0",
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg",
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg",
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg",
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg"
}
其他设置
参数ClipsParam
还支持以下设置,方便在剪辑的同时对素材进行编辑:
{
// 媒资
"Media1": "a8f5f167f44f4964e6c998dee827110c",
"Media1.loop": 1, //视频/Gif 素材有效,0:使用引擎默认循环逻辑,1:循环,2:不循环
"Media1.volume": 0.5, //视频素材有效, 音量>=0, 标准音量范围为0~1,默认值为0
"Media1.adapt_type": 0, //适配方式 0:不做适配,1:cover(居中填满空间),2:contain(完整居中显示),3:fill(不等比缩放),4:transform(使用transform字段对应的矩阵) 默认值为1
"Media1.transform": [a,c,e,b,d,f], //行矩阵,[scale, skewX, transX, skewY, scaleY, transY]。矩阵为在原始图片的局部坐标系矩阵,默认为单位矩阵
"Media1.clip_start": 0.0, //视频裁剪开始时间,不需要裁剪不传即可,clip_end必须大于clip_start
"Media1.clip_end": 10.0, //视频裁剪结束时间,大于0表示需要裁剪,小于等于0表示末尾不需要裁剪
// 字幕
"Text1":"测试字幕",
"Text1.adapt": true, //是否开启文字自适应,仅对文本框类型文字有效,默认使用模板设计中的适配方式
"Text1.fill": "#FFFFFF", //文字填充颜色
"Text1.stroke": "#FFFFFF", //文字描边颜色
"Text1.stroke_width": 0.0, //描边宽度
"Text1.stroke_over_fill": false, //描边是否在填充之上
"Text1.size": 10, //文字大小,单位为像素
"Text1.font_file": "SimSun" //字体系列名称
}