本文旨在介绍在智能图文匹配-影视集锦场景下的合成参数、进阶配置、SDK调用示例。
为了更好地阅读本文,建议您在阅读本文之前先通过智能一键成片操作指南了解【智能图文匹配成片-影视集锦场景】相关的概念与使用流程。
智能图文匹配-影视集锦场景包含两种成片模式。本文将针对以下几种“模式”进行详细阐述:
全局口播模式
分镜脚本模式
支持的区域:华东2(上海)、华北2(北京)、华东1(杭州)、华南1(深圳)。
使用说明
将多个视频、音频、图片素材进行智能混剪,一键批量合成视频接口说明,请参见SubmitBatchMediaProducingJob - 批量智能一键成片,api关键参数详见下文InputConfig 参数说明、EditingConfig 参数说明、OutputConfig 参数说明。
获取批量智能一键成片作业的详细信息,请参见GetBatchMediaProducingJob - 获取批量智能一键成片任务信息。
InputConfig 参数说明
用户可通过配置InputConfig,指定视频素材、口播、背景音乐、贴纸等基础素材的参数配置。
参数 | 类型 | 说明 | 是否必填 | 支持模式 |
MediaArray | List<String> | 智能图文匹配模式。支持传入媒资ID或素材OSS URL列表,视频总时长最多两小时。 | 是 | 全部支持 |
TitleArray | List<String> | 标题数组,每次合成随机选一个 最多50个,每个标题不超过50字 | 否 | 全部支持 |
SubHeadingArray | List<SubHeading> | 副标题设置 | 否 | 全部支持 |
SpeechTextArray | List<String> | 口播文案数组,每次合成随机选一个。 最多50个,每条口播文案最长1000个字符。 | 否 |
|
SceneInfo | 场景信息,用于场景相关的参数. | 是 |
| |
StickerArray | List<Sticker> | 贴纸数组,每次合成随机选择一个。 最多50个。 | 否 | 全部支持 |
BackgroundMusicArray | List<String> | 背景音乐数组,每次合成随机选一个。 最多50个,支持媒资ID 或 OSS URL。 | 否 | 全部支持 |
BackgroundImageArray | List<String> | 背景图片数组,每次合成随机选一个。 最多50个,支持媒资ID 或 OSS URL。 | 否 | 全部支持 |
SubHeading 参数说明
参数 | 类型 | 说明 | 是否必填 |
Level | Integer | 副标题级别。 枚举: 1:一级副标题 2:二级副标题 3:三级副标题 4:四级副标题 5:五级副标题 | 是 |
TitleArray | List<String> | 副标题数组,每次合成随机选一个 最多50个,每个标题不超过50字。 | 是 |
Sticker 参数说明
参数 | 类型 | 说明 | 是否必填 |
MediaId | String | 贴纸、logo、水印等图片ID | 二选一必填 都填写时优先取用MediaId |
MediaURL | String | 图片URL,仅支持自有OSS | |
X | Float | 参考VideoTrackClip.X | 否 |
Y | Float | 参考VideoTrackClip.Y | 否 |
Width | Float | 参考VideoTrackClip.Width | 否 |
Height | Float | 参考VideoTrackClip.Height | 否 |
DynamicFrames | Integer | 动图的帧数 | 否,当贴纸为动图时填写 |
SceneInfo 参数说明
参数 | 类型 | 说明 | 是否必填 | 支持模式 |
Scene | String | 匹配场景类型,影视集锦场景下传固定值“MovieHighlights”即可。 | 是 |
|
ShotInfo | 设置分镜脚本 | 是 |
| |
FaceInfo | 设置人脸信息 | 否 | 全部支持 |
ShotInfo 参数说明
此参数只适用于分镜脚本模式,如果是全局口播模式无需设置此参数。
参数 | 类型 | 说明 | 是否必填 |
ShotScripts | List<ShotScript> | 分镜脚本数组 | 是 |
ShotScript 参数说明
此参数只适用于分镜脚本模式,如果是全局口播模式无需设置此参数。
在影视集锦场景-分镜脚本模式中,有两种分镜模式:“文案描述模式”、“手工解析模式”,在设置参数时,需要二选一。
参数 | 类型 | 说明 | 是否必填 | 分镜模式 |
ScriptText | String | 单个分镜中的脚本文案,用于描述分镜的内容,例如:老魔法师丹尼在倒腾着奇怪的仪器,他最近在研制一种新的魔法药剂。 | 否 | 文案描述模式 |
SpeechText | String | 单个分镜中的口播文案,长度不超过100 | 否 | 全部支持 |
Duration | Float | 分镜的时长,仅在没有口播时生效,如果存在口播,分镜时长自动按口播时长计算。 | 否 | |
Descriptions | List<String> | 单个分镜中的细节描述,例如:浓浓迷雾下的伦敦街道,车流不息,人群快速移动。 | 否 | 手工解析模式 |
Characters | List<String> | 单个分镜中的人物(人脸)名称 | 否 | |
Settings | List<String> | 单个分镜中的场景描述,例如:在伦敦街头。 | 否 |
FaceInfo 参数说明
参数 | 类型 | 说明 | 是否必填 |
ImageInfoList | List<ImageInfo> | 人物(人脸)照片列表,列表长度上限200。 | 否 |
ImageInfo 参数说明
参数 | 类型 | 说明 | 是否必填 |
Name | String | 人物(人脸)名称 | 是 |
ImageURL | String | 人物(人脸)照片存储地址,支持第三方url。请确保人脸图片中仅包含一名个体,并且人脸应清晰可见,无明显遮挡或缺失现象。 | 是 |
参数示例:全局口播模式
{
"MediaArray": [
"****9d46c886b45481030f6e****",
"****c886810b4549d4630f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test1.mp4",
"http://test-bucket.oss-cn-shanghai.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",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/8c1001e93901213fb80ef0e98db621d12f2eb9383ffe?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"
}
]
}
},
"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
},
{
"MediaURL": "http://test-bucket.oss-cn-shanghai.aliyuncs.com/test3.png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test4.mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test1.png"
]
}
参数示例:分镜脚本模式
{
"MediaArray": [
"****9d46c886b45481030f6e****",
"****c886810b4549d4630f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test1.mp4",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test2.png"
],
"SceneInfo": {
"Scene": "MovieHighlights", // MovieHighlights影视剧匹配
"ShotInfo": {
"ShotScripts": [
{
// 文案描述模式,与手工解析模式二选一
"ScriptText": "这里是第一场分镜的脚本文案",
// 手工解析模式 start 仅影视剧场景支持配置
"Descriptions": ["人物A进入房间", "镜头缓慢拉近至人物面部表情"],
"Characters": ["人物A", "人物B"],
"Settings": ["现代办公室", "摩天大楼"],
// 手工解析模式 end
"SpeechText": "这里是第一场分镜的口播文案",
"Duration": 5.0 // 无口播文案时支持设置
},
{
// 文案描述模式,与手工解析模式二选一
"ScriptText": "这里是第二场分镜的脚本文案",
// 手工解析模式 start 仅影视剧场景支持配置
"Descriptions": ["人物C进入房间", "镜头缓慢拉远至窗外景色"],
"Characters": ["人物C"],
"Settings": ["现代办公室", "摩天大楼"],
// 手工解析模式 end
"SpeechText": "这里是第二场分镜的口播文案",
"Duration": 8.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",
"ImageURL": "https://bkimg.cdn.bcebos.com/pic/8c1001e93901213fb80ef0e98db621d12f2eb9383ffe?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"
}
]
}
},
"TitleArray": [
"回龙观盒马鲜生开业啦",
"盒马鲜生开业啦"
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
},
{
"MediaURL": "http://test-bucket.oss-cn-shanghai.aliyuncs.com/test3.png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test4.mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://test-bucket.oss-cn-shanghai.aliyuncs.com/test1.png"
]
}
EditingConfig 参数说明
用户可通过配置EditingConfig,指定成片素材的音量、位置及其他合成参数。如无特殊需求,建议客户使用默认配置,该字段可置空。
影视集锦场景下的“全局口播模式”和“分镜脚本模式”参数说明皆相同。
参数 | 类型 | 说明 | 是否必填 |
MediaConfig | JSON | 输入视频素材相关配置。 支持字段:
| 否 |
TitleConfig | JSON | 标题相关配置。支持配置字幕参数,字段详见:横幅文字。 | 否 |
SubHeadingConfig | JSON | JSON说明: key:Level value:横幅文字 示例如下:
| 否 |
SpeechConfig | JSON | 口播文案相关配置。 支持字段:
说明 计算方法如下:
小于1倍速时,使用0.002系数。 大于1倍速时,使用0.001系数。 实际算法结果取近似值。
| 否 |
BackgroundMusicConfig | JSON | 背景音乐相关配置。 支持字段:
| 否 |
BackgroundImageConfig | JSON | 背景图相关配置。如果InputConfig中已配置背景图,则此字段不生效。 支持字段:
| 否 |
ProcessConfig | 混剪处理配置。 支持字段:
| ||
ProduceConfig | JSON | 普通剪辑合成配置,字段详见:EditingProduceConfig | 否 |
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": "xxxx" // 若填写了此字段,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": {
"SingleShotDuration": 3, // 拆条后的镜头时长
"AllowVfxEffect": false, // 是否添加特效效果
"AllowTransition": false, // 是否添加转场效果
"AllowDuplicateMatch": false, // 图文匹配模式下,匹配过的片段是否允许重复使用
"EnableClipDetection": true, // 是否进行镜头检测
"EnableTemporalOpt": false // 是否进行时序优化
}
}
OutputConfig 参数说明
用户可通过配置OutputConfig,指定成片输出地址、名称规则、成片的宽高、输出成片数量等合成参数配置。
参数 | 类型 | 必填 | 说明 |
MediaURL | String | 成片输出到OSS时必填 | 输出视频地址,必须要有占位符 如:http://xxx.oss-cn-shanghai.aliyuncs.com/xxx_{index}.mp4 |
StorageLocation | String | 成片输出到VOD时必填 | 指定输出到VOD的媒资文件存储地址 如:outin-xxxxxx.oss-cn-shanghai.aliyuncs.com |
FileName | String | 成片输出到VOD时必填 | 输出文件名称,必须要有占位符, 如:xxx_{index}.mp4 |
GeneratePreviewOnly | Boolean | 否,默认false | GeneratePreviewOnly = true时,表示当前任务仅生成预览用的时间线,不实际合成,可不填写输出视频的地址。 一键成片任务完成后,通过GetBatchMediaProducingJob查询任务结果,返回的子任务列表中会包含剪辑工程projectId,再调用GetEditingProject可获取到预览时间线。 |
Count | Integer | 否,默认1 | 输出视频数
|
Width | Integer | 是 | 成片宽,px |
Height | Integer | 是 | 成片高,px |
JSONObject | 否 | 输出视频流相关配置,Crf、Codec等 |
参数示例
{
"MediaURL": "http://xxx.oss-cn-shanghai.aliyuncs.com/xxx_{index}.mp4",
"Count": 1,
"Width": 1080,
"Height": 1920,
"Video": {"Crf": 27},
"GeneratePreviewOnly":false
}
SDK调用示例
前提条件
您已安装IMS服务端SDK,详情请参见准备工作。
全局口播模式
API调用入参详情
混剪逻辑与进阶配置
处理逻辑
全局口播模式:
在全局口播模式下,需设置SpeechTextArray参数,将对口播与输入的视频/图片素材进行分析和智能匹配,并合成成片。
如果设置了人物信息,则口播中的出现的人名会与人物信息进行自动匹配关联。
分镜脚本模式:
在分镜脚本模式下,无需设置SpeechTextArray,通过SceneInfo.ShotInfo.ShotScripts控制成片中的每一个分镜的内容、时长、口播等内容。
在单个分镜中,如果为文案描述模式,则通过单个分镜中的ScriptText进行片段的智能截取和匹配;如果为手工解析模式,则通过设置场景描述、细节描述和出现的人物进行分镜视频片段的智能匹配和截取。
在单个分镜中,分镜的时长与口播时长或自定义时长进行对齐。
如果设置了人物信息,处理逻辑同全局口播模式。
进阶配置
进阶配置详见批量一键成片混剪逻辑与进阶配置