通过配置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""$TimelineIn:0"等,即冒号后面的值为该字段的默认值。
  • 如果默认值为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示例代码。

相关参考