創(chuàng)建并使用高級(jí)模板
智能生產(chǎn)制作支持使用高級(jí)模板進(jìn)行視頻剪輯,實(shí)現(xiàn)復(fù)雜動(dòng)效樣式的高級(jí)媒體效果。通過閱讀本文,您可以了解創(chuàng)建并使用高級(jí)模板的方法。
創(chuàng)建高級(jí)模板
通過控制臺(tái)上傳
使用VE Exporter將AE工程導(dǎo)出為模板文件(.zip格式)。具體操作,請(qǐng)參見高級(jí)模板制作流程。
通過模板工廠控制臺(tái)上傳模板文件。
通過OpenAPI創(chuàng)建
調(diào)用AddTemplate創(chuàng)建模板,傳入config(高級(jí)模板OSS地址)。
AddTemplateRequest request = new AddTemplateRequest();
request.setType("VETemplate");
request.setName("高級(jí)模板測(cè)試");
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());
此處高級(jí)模板oss_url
的值(OSS地址)為示例值,請(qǐng)根據(jù)實(shí)際情況設(shè)置。
使用高級(jí)模板
通過控制臺(tái)使用
使用高級(jí)模板進(jìn)行剪輯,請(qǐng)參見使用高級(jí)模板進(jìn)行云剪輯。
通過OpenAPI使用
獲取模板信息。
調(diào)用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":"高級(jí)模板測(cè)試", "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":"" } }
說明您也可以使用系統(tǒng)內(nèi)置模板,使用方式與上述使用個(gè)人創(chuàng)建模板類似,不再重復(fù)介紹。系統(tǒng)內(nèi)置模板請(qǐng)參見公共模板庫——高級(jí)模板。
根據(jù)實(shí)際需求替換以上步驟返回示例中
ClipsParam
參數(shù)的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
為合成服務(wù)的參數(shù),您可以根據(jù)實(shí)際需求替換text為指定的文案,替換mediaId為指定的媒資ID或?qū)?yīng)的OSS地址(包括視頻和圖片),支持混合使用。如果參數(shù)
ClipsParam
只設(shè)置了部分字段,未設(shè)置的字幕默認(rèn)為空,媒資默認(rèn)為模板的原始素材。字幕支持設(shè)置字體,視頻、圖片支持設(shè)置適配模式,詳情請(qǐng)參見擴(kuò)展功能。
調(diào)用合成服務(wù)。
調(diào)用SubmitMediaProducingJob提交剪輯合成作業(yè),傳入
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());
擴(kuò)展功能
設(shè)置視頻、圖片的適配模式
使用.adapt_type
設(shè)置視頻、圖片的縮放模式,取值范圍:
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
設(shè)置字幕字體,也支持設(shè)置OSS地址使用自有字體。字體列表請(qǐng)參見字體列表。
{
"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"
}
其他設(shè)置
參數(shù)ClipsParam
還支持以下設(shè)置,方便在剪輯的同時(shí)對(duì)素材進(jìn)行編輯:
{
// 媒資
"Media1": "a8f5f167f44f4964e6c998dee827110c",
"Media1.loop": 1, //視頻/Gif 素材有效,0:使用引擎默認(rèn)循環(huán)邏輯,1:循環(huán),2:不循環(huán)
"Media1.volume": 0.5, //視頻素材有效, 音量>=0, 標(biāo)準(zhǔn)音量范圍為0~1,默認(rèn)值為0
"Media1.adapt_type": 0, //適配方式 0:不做適配,1:cover(居中填滿空間),2:contain(完整居中顯示),3:fill(不等比縮放),4:transform(使用transform字段對(duì)應(yīng)的矩陣) 默認(rèn)值為1
"Media1.transform": [a,c,e,b,d,f], //行矩陣,[scale, skewX, transX, skewY, scaleY, transY]。矩陣為在原始圖片的局部坐標(biāo)系矩陣,默認(rèn)為單位矩陣
"Media1.clip_start": 0.0, //視頻裁剪開始時(shí)間,不需要裁剪不傳即可,clip_end必須大于clip_start
"Media1.clip_end": 10.0, //視頻裁剪結(jié)束時(shí)間,大于0表示需要裁剪,小于等于0表示末尾不需要裁剪
// 字幕
"Text1":"測(cè)試字幕",
"Text1.adapt": true, //是否開啟文字自適應(yīng),僅對(duì)文本框類型文字有效,默認(rèn)使用模板設(shè)計(jì)中的適配方式
"Text1.fill": "#FFFFFF", //文字填充顏色
"Text1.stroke": "#FFFFFF", //文字描邊顏色
"Text1.stroke_width": 0.0, //描邊寬度
"Text1.stroke_over_fill": false, //描邊是否在填充之上
"Text1.size": 10, //文字大小,單位為像素
"Text1.font_file": "SimSun" //字體系列名稱
}