全部產品
Search
文件中心

Intelligent Media Services:普通模板Config詳解

更新時間:Nov 09, 2024

通過配置TemplateId提交剪輯合成作業時,系統會將TemplateId對應的普通模板Config和傳入的參數ClipsParam合并成時間軸Timeline,並根據此時間軸進行剪輯合成。通過閱讀本文,您可以瞭解常見普通模板的Config和對應Timeline的詳細解析說明。

Config中的參數為普通參數樣本

視頻添加浮水印

Config

{
    "VideoTracks": [
        {  
            "VideoTrackClips": [
                {    
                    "MediaId": "$Video"
                }
            ]
        }
    ],
    "ImageTracks": [
        {
            "ImageTrackClips": [
                {
                    "ImageId": "******e01cb05d417c3dbcd1b9******",
                    "Width" : 200,
                    "Height" : 60,
                    "X" : 40,
                    "Y" : 40
                }
            ]
        }
    ]
}

Timeline

{
    "VideoTracks": [
        {  
            "VideoTrackClips": [
                {    
                    "MediaId": "****20b48fb04483915d4f2cd8ac****"
                }
            ]
        }
    ],
    "ImageTracks": [
        {
            "ImageTrackClips": [
                {
                    "ImageId": "******e01cb05d417c3dbcd1b9******",
                    "Width" : 200,
                    "Height" : 60,
                    "X" : 40,
                    "Y" : 40
                }
            ]
        }
    ]
}

解析說明:

  • 普通模板Config中的參數欄位以$開頭,例如上述Config範例程式碼中的"$Video"

  • 提交剪輯合成作業時,參數TemplateId傳入IceSys_SingleVideo_Watermark,ClipsParam傳入指定參數欄位Video,最終合并的時間軸見上述Timeline範例程式碼。

    http://ice.cn-shanghai.aliyuncs.com/?Action=SubmitMediaProducingJob
    &TemplateID=IceSys_SingleVideo_Watermark
    &ClipsParam={\"Video\":\"****20b48fb04483915d4f2cd8ac****\"}
    &<公用參數>

視頻添加浮水印(Config中包含預設值)

Config

{
    "VideoTracks": [
        {  
            "VideoTrackClips": [
                {    
                    "MediaId": "$Video"
                }
            ]
        }
    ],
    "ImageTracks": [
        {
            "ImageTrackClips": [
                {
                    "ImageId": "******e01cb05d417c3dbcd1b9******",
                    "Width" : 200,
                    "Height" : 60,
                    "X" : "$X:40",
                    "Y" : "$Y:40",
                    "TimelineIn" : "$TimelineIn:0",
                    "TimelineOut" : "$TimelineOut:NULL"
                }
            ]
        }
    ]
}

Timeline

{
    "VideoTracks": [
        {  
            "VideoTrackClips": [
                {    
                    "MediaId": "****20b48fb04483915d4f2cd8ac****"
                }
            ]
        }
    ],
    "ImageTracks": [
        {
            "ImageTrackClips": [
                {
                    "ImageId": "******e01cb05d417c3dbcd1b9******",
                    "Width" : 200,
                    "Height" : 60,
                    "X" : 40,
                    "Y" : 40,
                    "TimelineIn" : 5
                }
            ]
        }
    ]
}

解析說明:

  • 普通模板Config支援預設值,如果沒有傳入參數欄位時,系統會使用預設值。例如上述Config範例程式碼中的"$TimelineIn:0""$TimelineOut:NULL"等,即冒號後面的值為該欄位的預設值。

  • 如果預設值為NULL且沒有傳入該參數欄位時,最終合成的Timeline會刪除該欄位。

  • 提交剪輯合成作業時,參數TemplateId傳入IceSys_SingleVideo_Watermark,ClipsParam傳入指定參數欄位,最終合并的時間軸見上述Timeline範例程式碼。

    http://ice.cn-shanghai.aliyuncs.com/?Action=SubmitMediaProducingJob
    &TemplateId=IceSys_SingleVideo_Watermark
    &ClipsParam={\"Video\":\"****20b48fb04483915d4f2cd8ac****\",\"TimelineIn\":\"5\"}
    &<公用參數>

Config中的參數為數組參數樣本

視頻軌道整體靜音

Config

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "Sys_Type" : "ArrayItems",
                    "Sys_ArrayObject" : "$VideoArray",
                    "Sys_Template" : {
                        "MediaId" : "$MediaId",
                        "Effects": [
                            {
                                "Type": "Volume",
                                "Gain": "0"
                            }
                        ]
                    }
                }
            ]
        }
    ]
}

Timeline

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "MediaId" : "******05512043f49f697f7425******",
                    "Effects": [
                        {
                            "Type": "Volume",
                            "Gain": "0",
                        }
                    ]
                },
                {
                    "MediaId" : "******2788e810116a45109f2e******",
                    "Effects": [
                        {
                            "Type": "Volume",
                            "Gain": "0",
                        }
                    ]
                },
                {
                    "MediaId" : "******67f44f4964e6c998dee8******",
                    "Effects": [
                        {
                            "Type": "Volume",
                            "Gain": "0",
                        }
                    ]
                }
            ]
        }
    ]
}

解析說明:

  • 上述Config範例程式碼中以下部分為數組參數,方便傳入數量不定的素材。

    {
        "Sys_Type" : "ArrayItems",
        "Sys_ArrayObject" : "$VideoArray",
        "Sys_Template" : {
            "MediaId" : "$MediaId",
            "Effects": [
                {
                    "Type": "Volume",
                    "Gain": "0"
                }
            ]
        }
    }

    提交剪輯合成作業時,參數TemplateId傳入IceSys_VideoMute,ClipsParam傳入指定參數欄位VideoArray(數群組類型),合成Timeline時會遍曆VideoArray,以Sys_Template為模板產生每一個元素,並封裝成一個新的數組,最終合并的時間軸見上述Timeline範例程式碼。

    http://ice.cn-shanghai.aliyuncs.com/?Action=SubmitMediaProducingJob
    &TemplateID=IceSys_VideoMute
    &ClipsParam={\"VideoArray\":[{\"MediaId\":\"******05512043f49f697f7425******\"},{\"MediaId\":\"******05512043f49f697f7425******\"},{\"MediaId\":\"******05512043f49f697f7425******\"}]}
    &<公用參數>
  • 如果Sys_Template中只有一個參數時,可以簡化輸入參數,即數組中每個元素不必指定參數名,只需傳入對應的值,最終合并的時間軸和上述Timeline範例程式碼一致。

    http://ice.cn-shanghai.aliyuncs.com/?Action=SubmitMediaProducingJob
    &TemplateID=IceSys_VideoMute
    &ClipsParam={\"VideoArray\":[\"b3f37e05512043f49f697f7425b9188b\",\"9987d22788e810116a45109f2ea88648\",\"a8f5f167f44f4964e6c998dee827110c\"]}
    &<公用參數>

增加標題片尾

Config

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "MediaId": "******2788e810116a45109f2e******" // 此為設定的標題視頻
                },
                {
                    "Sys_Type" : "ArrayItems",
                    "Sys_ArrayObject" : "$VideoArray",
                    "Sys_Template" : {
                        "MediaId" : "$MediaId"
                    }
                },
                {
                    "MediaId": "******67f44f4964e6c998dee8******" // 此為設定的片尾視頻
                }
            ]
        }
    ]
}

Timeline

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "MediaId": "******2788e810116a45109f2e******" // 此為設定的標題視頻
                },
                {
                    "MediaId": "******05512043f49f697f7425******"
                },
                {
                    "MediaId": "******2788e810116a45109f2e******"
                },
                {
                    "MediaId": "******67f44f4964e6c998dee8******"
                },
                {
                    "MediaId": "******67f44f4964e6c998dee8******" // 此為設定的片尾視頻
                }
            ]
        }
    ]
}

解析說明:

普通模板在視頻軌開始和結束分別插入固定的標題和片尾,中間數組參數需要傳入數量不定的素材。提交剪輯合成作業時,參數TemplateId傳入IceSys_OpeningEnding,ClipsParam傳入指定參數欄位VideoArray(數群組類型)。

http://ice.cn-shanghai.aliyuncs.com/?Action=SubmitMediaProducingJob
&TemplateID=IceSys_OpeningEnding
&ClipsParam={\"VideoArray\":[\"******05512043f49f697f7425******\",\"******2788e810116a45109f2e******\",\"******67f44f4964e6c998dee8******\"]}
&<公用參數>

合成Timeline時會遍曆VideoArray,以Sys_Template為模板產生每一個元素,並封裝成一個新的數組,初步合成Timeline。此Timeline格式異常,因為VideoTrackClips中的中間項被處理成Clip數組,如下所示:

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "MediaId": "******2788e810116a45109f2e******" // 此為設定的標題視頻
                },
                [
                    {
                        "MediaId": "******05512043f49f697f7425******"
                    },
                    {
                        "MediaId": "******2788e810116a45109f2e******"
                    },
                    {
                        "MediaId": "******67f44f4964e6c998dee8******"
                    }
                ],
                {
                    "MediaId": "******67f44f4964e6c998dee8******" // 此為設定的片尾視頻
                }
            ]
        }
    ]
}

鑒於此,智能媒體服務系統會做相應的容錯處理,根據當前上下文把數組中的元素提出並處理成一維數組,最終合并的時間軸見上述Timeline範例程式碼。