本文旨在介绍在智能图文匹配-影视集锦场景下的合成参数、进阶配置、SDK调用示例。
脚本化自动成片与智能图文匹配成片共用同一个提交任务API。有关如何通过参数区分这两者,请参见参数区别说明
注意:在此接口中,所有媒资的OSS URL中的区域(region)必须与调用OpenAPI服务地址中的区域(region)保持一致。
支持的区域:华东2(上海)、华北2(北京)、华东1(杭州)、华南1(深圳)、美国(西部)、新加坡。
在实际使用过程中,请将文档所有参数示例中的 [your-bucket]、[your-region-id]、[your-file-name]、[your-file-path]、媒资ID(例如:“****9d46c8b4548681030f6e****”)等参数替换为您的实际值。
为了更好地阅读本文,建议您在阅读本文之前先通过智能一键成片操作指南了解【智能图文匹配成片-影视集锦场景】相关的概念与使用流程。
智能图文匹配-影视集锦场景包含两种成片模式。本文将针对以下几种“模式”进行详细阐述:
全局口播模式
分镜脚本模式
使用说明
将多个视频、音频、图片素材进行智能混剪,一键批量合成视频接口说明,请参见SubmitBatchMediaProducingJob - 批量智能一键成片,api关键参数详见下文InputConfig 参数说明、EditingConfig 参数说明、OutputConfig 参数说明。
获取批量智能一键成片作业的详细信息,请参见GetBatchMediaProducingJob - 获取批量智能一键成片任务信息。
InputConfig 参数说明
用户可通过配置InputConfig,指定视频素材、口播、背景音乐、贴纸等基础素材的参数配置。
参数 | 类型 | 说明 | 示例值 | 是否必填 | 支持模式 |
MediaArray | List<String> |
| ["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"] | 是 | 全部支持 |
TitleArray | List<String> | 标题数组,每次合成随机选一个 最多50个,每个标题不超过50字 | ["标题1","标题2"] | 否 | 全部支持 |
SubHeadingArray | List<SubHeading> | 副标题设置 | [{"Level":1,"TitleArray":["一级副标题1","一级副标题2"]},{"Level":3,"TitleArray":["三级副标题"]}] | 否 | 全部支持 |
SpeechTextArray | List<String> |
| ["口播内容1","口播内容2"] | 否 |
|
SceneInfo | 场景信息,用于场景相关的参数. | 是 |
| ||
StickerArray | List<Sticker> |
| [{"MediaId":"****9d46c8b4548681030f6e****","X":10,"Y":100,"Width":300,"Height":300,"Opacity":0.6}] | 否 | 全部支持 |
BackgroundMusicArray | List<String> |
| ["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"] | 否 | 全部支持 |
BackgroundImageArray | List<String> |
| ["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"] | 否 | 全部支持 |
SceneInfo 参数说明
参数 | 类型 | 说明 | 是否必填 | 支持模式 |
Scene | String | 匹配场景类型,影视集锦场景下传固定值“MovieHighlights”即可。 | 是 |
|
ShotInfo | 设置分镜脚本 | 是 |
| |
FaceInfo | 设置人脸信息 | 否 | 全部支持 |
ShotInfo 参数说明
此参数只适用于分镜脚本模式,如果是全局口播模式无需设置此参数。
参数 | 类型 | 说明 | 是否必填 |
ShotScripts | List<ShotScript> | 分镜脚本数组 | 是 |
ShotScript 参数说明
此参数只适用于分镜脚本模式,如果是全局口播模式无需设置此参数。
在影视集锦场景-分镜脚本模式中,有两种分镜模式:“文案描述模式”、“手工解析模式”,在设置参数时,需要二选一。
参数 | 类型 | 说明 | 示例值 | 是否必填 | 分镜模式 |
ScriptText | String | 单个分镜的脚本文案,用于描述分镜的内容。请尽量用1至2句话对分镜内容进行概括。 | 地铁车厢里,林夏坐在角落,悄悄举起手机录像。老奶奶正牵着孙子的手,轻轻哼着歌。 | 否 | 文案描述模式 |
SpeechText | String |
| 深夜的车厢很安静,但有些人,用歌声点亮了整节车厢的温度。 | 否 | 全部支持 |
Duration | Float |
| 5 | 否 | |
Descriptions | List<String> | 单个分镜中的细节描述。请尽量用1至2句话对分镜内容进行概括。 | ["林夏坐在地铁车厢角落,悄悄举起手机录像", "老奶奶牵着孙子的手,轻轻哼着歌"] | 否 | 手工解析模式 |
Characters | List<String> | 单个分镜中的人物(人脸)名称。注意:人物名称必须与FaceInfo.ImageInfoList中的ImageInfo.Name保持一致。 | ["林夏", "老奶奶", "孙子"] | 否 | |
Settings | List<String> | 单个分镜中的场景描述。 | ["深夜地铁车厢"] | 否 | |
Volume | Float |
| 0.5 | 否 | 全部支持 |
FaceInfo 参数说明
参数 | 类型 | 说明 | 是否必填 |
ImageInfoList | List<ImageInfo> | 人物(人脸)照片列表,列表长度上限200。 | 否 |
ImageInfo 参数说明
参数 | 类型 | 说明 | 示例值 | 是否必填 |
Name | String | 人物(人脸)名称 | 丹尼尔 | 是 |
ImageURL | String | 人物(人脸)照片存储地址,需要是公网可访问的URL链接。请确保人脸图片中仅包含一名个体,并且人脸应清晰可见,无明显遮挡或缺失现象。 | http://[your-cdn-domain]/[your-file-path]/face1.png | 是,二选一必填 |
ImageId | String | 图片媒资ID | ****9d46c886b45481030f6e**** |
参数示例:全局口播模式
{
"MediaArray": [
"****9d46c886b45481030f6e****",
"****c886810b4549d4630f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.mp4",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test2.png"
],
"SceneInfo": {
"Scene": "MovieHighlights", //MovieHighlights影视剧匹配
"FaceInfo": {
"ImageInfoList": [
{
"Name": "人物A",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/3853ad1bdd9f70558718bf38?x-bce-process=image/format,f_auto/watermark,image_d2F0ZXIvYmFpa2UyNzI,g_7,xp_5,yp_5,P_20/resize,m_lfit,limit_1,h_1080"
},
{
"Name": "人物B",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/622762d0f703918ffbedc1125b3d269759eec42e?x-bce-process=image/format,f_auto/watermark,image_d2F0ZXIvYmFpa2UyNzI,g_7,xp_5,yp_5,P_20/resize,m_lfit,limit_1,h_1080"
},
{
"Name": "人物C",
"ImageId": "****b681034549d46c880f6e****"
}
]
}
},
"TitleArray": [
"回龙观盒马鲜生开业啦",
"盒马鲜生开业啦"
],
"SubHeadingArray": [
{
"Level": 1,
"TitleArray": ["副标题1", "副标题2"]
},
{
"Level": 3,
"TitleArray": ["三级副标题"]
}
],
"SpeechTextArray": [
"附近的商场新开了一家盒马鲜生,今天是第一天开业,赶紧来凑热闹,这家盒马面积不大,但商场里的人不少,零食、酒水都比较便宜,排队的人都排成了长龙,大家也快来看看呀",
"附近的商场新开了一家盒马鲜生,今天是第一天开业,赶紧来凑热闹"
],
"Sticker": {
"MediaId": "****b681034549d46c880f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
},
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test3.png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test4.mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png"
]
}
参数示例:分镜脚本模式
{
"MediaArray": [
"****9d46c886b45481030f6e****",
"****c886810b4549d4630f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.mp4",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test2.png"
],
"SceneInfo": {
"Scene": "MovieHighlights", // MovieHighlights影视剧匹配
"ShotInfo": {
"ShotScripts": [
// 文案描述模式示例start,对于每个分镜,手工解析模式与文案描述模式二选一
{
"ScriptText": "地铁车厢里,林夏坐在角落,悄悄举起手机录像。老奶奶正牵着孙子的手,轻轻哼着歌。",
"SpeechText": "深夜的车厢很安静,但有些人,用歌声点亮了整节车厢的温度。"
},
{
"ScriptText": "老奶奶的白发在车灯下泛着光,她一边摸着孙子的头,一边轻声说:‘你还记得这首歌吗?’",
"SpeechText": "她的世界或许模糊了,但在他面前,她还是那个最温柔的母亲。"
},
{
"ScriptText": "林夏停下拍摄,看着窗外飞速掠过的广告牌,眼神变得柔软。",
"SpeechText": "我以为我在记录别人的故事,其实我被悄悄治愈了。"
},
{
"ScriptText": "家中,林夏翻出相机,写下第一篇日记:‘今天,我看见了幸福的样子。’",
"SpeechText": "有时候,幸福不是大事,而是那些被我们忽略的小瞬间。"
},
{
"ScriptText": "几天后,林夏的社交媒体上,一张张温暖照片引发网友共鸣。",
"SpeechText": "她开始用镜头讲故事,而每一个故事,都藏着一份爱。"
},
{
"ScriptText": "夜晚,林夏再次走进地铁站,这一次,她带着微笑和新的目标。",
"SpeechText": "这座城市很大,但总有人在等你,也有人值得你去发现。"
}
// 文案描述模式示例 end
// 手工解析模式示例 start,对于每个分镜,手工解析模式与文案描述模式二选一
{
"Descriptions": ["林夏坐在地铁车厢角落,悄悄举起手机录像", "老奶奶牵着孙子的手,轻轻哼着歌"],
"Characters": ["林夏", "老奶奶", "孙子"],
"Settings": ["深夜地铁车厢"],
"SpeechText": "深夜的车厢很安静,但有些人,用歌声点亮了整节车厢的温度。"
},
{
"Descriptions": ["老奶奶白发在车灯下泛光", "她一边摸着孙子的头,一边轻声说话"],
"Characters": ["老奶奶", "孙子"],
"Settings": ["地铁车厢"],
"SpeechText": "她的世界或许模糊了,但在他面前,她还是那个最温柔的母亲。"
},
{
"Descriptions": ["林夏停下拍摄动作", "望向窗外飞速掠过的广告牌,眼神变得柔软"],
"Characters": ["林夏"],
"Settings": ["行驶中的地铁车厢"],
"SpeechText": "我以为我在记录别人的故事,其实我被悄悄治愈了。"
},
{
"Descriptions": ["林夏在家翻出相机", "写下第一篇日记‘今天,我看见了幸福的样子’"],
"Characters": ["林夏"],
"Settings": ["现代公寓 / 居室"],
"SpeechText": "有时候,幸福不是大事,而是那些被我们忽略的小瞬间。"
},
{
"Descriptions": ["林夏的社交媒体页面上,温暖照片陆续发布", "网友纷纷点赞留言"],
"Characters": ["林夏"],
"Settings": ["手机屏幕 / 社交平台界面"],
"SpeechText": "她开始用镜头讲故事,而每一个故事,都藏着一份爱。"
},
{
"Descriptions": ["夜晚,林夏走进地铁站", "她带着微笑和新的目标"],
"Characters": ["林夏"],
"Settings": ["城市地铁站"],
"SpeechText": "这座城市很大,但总有人在等你,也有人值得你去发现。"
}
// 手工解析模式示例 end
// 支持不配置口播,仅配置分镜脚本和分镜时长,设置视频原声播放
{
"ScripText": "地铁车厢里,林夏坐在角落,悄悄举起手机录像。老奶奶正牵着孙子的手,轻轻哼着歌。",
"Duration": 8.0, // 无口播文案时支持设置
"Volume": 1.0 //设置视频素材原声音量"
}
]
},
"FaceInfo": {
"ImageInfoList": [
{
"Name": "人物A",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/3853ad1bdd9f70558718bf38?x-bce-process=image/format,f_auto/watermark,image_d2F0ZXIvYmFpa2UyNzI,g_7,xp_5,yp_5,P_20/resize,m_lfit,limit_1,h_1080"
},
{
"Name": "人物B",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/622762d0f703918ffbedc1125b3d269759eec42e?x-bce-process=image/format,f_auto/watermark,image_d2F0ZXIvYmFpa2UyNzI,g_7,xp_5,yp_5,P_20/resize,m_lfit,limit_1,h_1080"
},
{
"Name": "人物C",
"ImageId": "****b681034549d46c880f6e****"
}
]
}
},
"TitleArray": [
"回龙观盒马鲜生开业啦",
"盒马鲜生开业啦"
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test3.png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test4.mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png"
]
}
EditingConfig 参数说明
用户可通过配置EditingConfig,指定成片素材的音量、位置及其他合成参数。如无特殊需求,建议客户使用默认配置,该字段可置空。
影视集锦场景下的“全局口播模式”和“分镜脚本模式”参数说明皆相同。
参数 | 类型 | 说明 | 示例值 | 是否必填 |
JSON | 输入视频素材相关配置。 | 详见参数示例 | 否 | |
JSON | 标题相关配置。支持配置字幕参数,字段详见:横幅文字。 | 详见参数示例 | 否 | |
SubHeadingConfig | JSON | 多级副标题相关配置。支持设置字幕参数。 JSON字段说明: | 详见参数示例 | 否 |
JSON | 口播文案相关配置。 | 详见参数示例 | 否 | |
JSON | 背景音乐相关配置。 | {"Volume":0.2} | 否 | |
JSON | 背景图相关配置。 | {"SubType":"Blur","Radius":0.5} | 否 | |
混剪处理配置。 | 详见参数示例 | 否 | ||
JSON | 用于前端页面预览时的画布配置。 | {"Width": 1080,"Height": 1920} | 否 | |
ProduceConfig | JSON | 普通剪辑合成配置,字段详见:EditingProduceConfig | {"AutoRegisterInputVodMedia":true,"OutputWebmTransparentChannel":true,"CoverConfig":{"StartTime":3.3},"AudioChannelCopy":"left","PipelineId":"***d54a97cff4108b555b01166d4b***","MaxBitrate":5000,"KeepOriginMaxBitrate":false,"KeepOriginVideoMaxFps":false} | 否 |
ProcessConfig 参数说明
参数 | 类型 | 说明 | 示例值 | 是否必填 |
AllowVfxEffect | Boolean | 是否允许添加特效效果。 | true | 否,默认false |
VfxEffectProbability | Float | 特效应用在每个视频片段上的概率,取值:0.0 - 1.0,支持2位小数。 | 0.6 | 否,默认0.5 |
VfxFirstClipEffectList | List<String> |
| ["slightshow","starfieldshinee"] | 否 |
VfxNotFirstClipEffectList | List<String> |
| ["zoomslight","zoom"] | 否 |
AllowTransition | Boolean | 是否允许添加转场效果。 | true | 否,默认false |
TransitionDuration | Float | 转场时长,单位秒。如果转场时长 > 片段时长 - 1,则该片段上的转场效果不会生效。 | 0.5 | 否,默认0.5秒 |
TransitionList | List<String> | 自定义转场效果列表,当AllowTransition=true时,随机选取列表中的一个转场效果进行合成。转场效果的可选范围详见转场效果库。如果此参数为空,则会从以下特效中随机选取:"linearblur", "colordistance", "crosshatch", "dreamyzoom", "doomscreentransition_up" | ["directional", "linearblur"] | 否 |
UseUniformTransition | Boolean | 单个成片中是否使用一致的转场效果。 | true | 否,默认true |
AllowFilter | Boolean | 是否允许添加自定义滤镜 | false | 否,默认false |
FilterList | List<String> | 自定义滤镜效果列表,当AllowFilter=true时,随机选取列表中的一个滤镜进行合成,滤镜效果的可选范围滤镜效果示例,如果此参数为空,则不会添加滤镜效果。 | ["m1", "m2"] | 否 |
AllowDuplicateMatch | Boolean | 表示匹配过的片段是否允许重复使用。 | false | 否,默认false |
EnableClipDetection: | Boolean | 是否对素材进行分镜检测。仅影视集锦可配置。支持自动划分镜头,识别镜头类型(片头片尾、广告、黑屏等不参与成片)。 | true | 否,默认为true |
EnableTemporalOpt | Boolean | 是否对匹配结果进行时序优化,仅影视集锦可配置。当输入的分镜信息或解说文案,与源片的内容顺序基本保持一致时,建议填写为true。 | true | 否,默认false |
EnableSubtitleMatch | Boolean | 基于OCR和ASR识别的结果,优化口播文案与画面之间的匹配。
| true | 否,默认false |
EditingConfig参数示例
EditingConfig 中的所有参数均为非必填项,以下是默认配置。
{
"MediaConfig": {
"Volume": 0 // 默认视频素材静音
},
"TitleConfig": {
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Font": "Alibaba PuHuiTi 2.0 95 ExtraBold",
"SizeRequestType": "Nominal",
"Y": 0.1, // 成片为竖屏时,标题Y坐标值
"Y": 0.05, // 成片为横屏时,标题Y坐标值
"Y": 0.08 // 成片为方屏时,标题Y坐标值
},
"SpeechConfig": {
"Volume": 1, // 口播音频默认用原始音量
"SpeechRate": 0,
"Voice": null,
"Style": null,
"CustomizedVoice": null, // 人声克隆voiceId,若填写了此字段,Voice和Style将失效。
"AsrConfig": {
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Font": "Alibaba PuHuiTi 2.0 65 Medium",
"SizeRequestType": "Nominal",
"Spacing": -1,
"Y": 0.8, // 成片为竖屏时,字幕Y坐标值
"Y": 0.9, // 成片为横屏时,字幕Y坐标值
"Y": 0.85 // 成片为方屏时,字幕Y坐标值
}
},
"SubHeadingConfig": {
"1": {
"Y": 0.3,
"FontSize": 40
},
"3": {
"Y": 0.5,
"FontSize": 30
}
},
"BackgroundMusicConfig": {
"Volume": 0.2, // 背景音乐默认用20%音量,
"Style": null
},
"ProcessConfig": {
"AllowVfxEffect": false, // 是否添加特效效果
"AllowTransition": false, // 是否添加转场效果
"AllowDuplicateMatch": false, // 图文匹配模式下,匹配过的片段是否允许重复使用
"EnableClipDetection": true, // 是否进行镜头检测
"EnableTemporalOpt": true // 是否进行时序优化
}
}
TemplateConfig 参数说明
TemplateConfig为一键成片的公共参数,用于设置一键成片模板。详细参数说明和使用示例详见TemplateConfig 参数说明
OutputConfig 参数说明
用户可通过配置OutputConfig,指定成片输出地址、名称规则、成片的宽高、输出成片数量等合成参数配置。
参数 | 类型 | 说明 | 示例值 | 是否必填 |
MediaURL | String | 输出视频地址,必须要有占位符 {index}。 | 规则:http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4 示例:http://example.oss-[your-region-id].aliyuncs.com/example/example_{index}.mp4 | 当GeneratePreviewOnly=false时,且成片输出到OSS时必填 |
StorageLocation | String | 指定输出到VOD的媒资文件存储地址。 | 规则:[your-vod-bucket].oss-[your-region-id].aliyuncs.com 示例:outin-****6c886b4549d481030f6e****.oss-[your-region-id].aliyuncs.com | 当GeneratePreviewOnly=false时,且成片输出到VOD时必填 |
FileName | String | 输出文件名称,必须要有占位符 {index}。 | 规则:[your-file-name]__{index}.mp4 示例:example_{index}.mp4 | 当GeneratePreviewOnly=false时,且成片输出到VOD时必填 |
GeneratePreviewOnly | Boolean |
| false | 否,默认false |
Count | Integer | 输出视频数
| 1 | 否,默认1 |
Width | Integer | 成片宽,px | 1080 | 是 |
Height | Integer | 成片高,px | 1920 | 是 |
JSONObject | 输出视频流相关配置,Crf、Codec等 | {"Crf": 27} | 否 |
参数示例
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4",
"Count": 1,
"Width": 1080,
"Height": 1920,
"Video": {"Crf": 27},
"GeneratePreviewOnly":false
}
SDK调用示例
前提条件
您已安装IMS服务端SDK,详情请参见准备工作。
代码示例
以全局口播模式为例
API调用入参详情
进阶配置
进阶配置详见批量一键成片混剪逻辑与进阶配置
常见问题
脚本化自动成片常见问题请参见影视集锦FAQ: