智能生產製作支援使用進階模板進行視訊剪輯,實現複雜動效樣式的進階媒體效果。通過閱讀本文,您可以瞭解建立並使用進階模板的方法。
建立進階模板
通過控制台上傳
使用VE Exporter將AE工程匯出為模板檔案(.zip格式)。
通過模板工廠控制台上傳模板檔案。
通過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" //字型系列名稱
}