全部產品
Search
文件中心

Intelligent Media Services:建立並使用進階模板

更新時間:Feb 19, 2025

智能生產製作支援使用進階模板進行視訊剪輯,實現複雜動效樣式的進階媒體效果。通過閱讀本文,您可以瞭解建立並使用進階模板的方法。

建立進階模板

通過控制台上傳

  1. 使用VE Exporter將AE工程匯出為模板檔案(.zip格式)。

  2. 通過模板工廠控制台上傳模板檔案。

通過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使用

  1. 擷取模板資訊。

    調用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":""
        }
    }
    說明

    您也可以使用系統內建模板,使用方式與上述使用個人建立模板類似,不再重複介紹。系統內建模板請參見公用模板庫——進階模板

  2. 根據實際需求替換以上步驟返回樣本中ClipsParam參數的textmediaId欄位。

    {
        "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只設定了部分欄位,未設定的字幕預設為空白,媒資預設為模板的原始素材。

    • 字幕支援設定字型,視頻、圖片支援設定適配模式,詳情請參見擴充功能

  3. 調用合成服務。

    調用SubmitMediaProducingJob提交剪輯合成作業,傳入TemplateIdClipsParam

    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" //字型系列名稱
}