视频制作接口-视频免训练

最近更新时间:2026-06-09 18:00:06

我的收藏

接口说明

无需训练,即可基于一段真人视频素材,通过输入文本或音频,生成人物说话口型与输入内容相匹配的新视频。
通过 音视频制作进度查询接口 最终返回成品视频。目前音视频资源只保留7天,请尽快下载。

调用协议

HTTPS + JSON
POST /v2/ivh/videomaker/broadcastservice/videomakenotrain
Header Content-Type: application/json;charset=utf-8

请求参数

参数
类型
必须
说明
RefVideoUrl
string
模板视频 URL,该字段必填。
1. 支持封装格式:mp4、mov、avi
注意:
视频本身要求编码格式为 H.264 格式,若不是,可通过下述方法转换。请参见 编码格式转换
2. 文件大小:不超过5G。
3. 视频分辨率:单边像素要求在360 - 4096之间。
4. 视频时长:时长不超过20分钟,不少于1秒。
5. 请保证文件的下载速度,否则会下载失败或导致视频制作实时率下降。
对于输入视频素材的规范性要求:
1. 人脸画面:要求真人出镜(如果是卡通人物,需要人物五官和真人比例相近),画面中的人脸说话时,建议正对镜头,水平转动不超过45度,俯仰不超过15度;人脸尽量不遮挡,面部光线稳定。
2. 说话音频:对音频无限制。
对于输出视频的说明:
1. 输出格式:mp4
2. 输出分辨率:最大支持输出单边4096,即 4K 视频。
2.1 当 ConcurrencyType 为 Shared 时,支持最大输出2560*1440。当输入视频分辨率<=2560*1440时,输出分辨率和输入视频一致。
2.2 当 ConcurrencyType 为 Exclusive 时,支持最大输出4096*4096。当输入视频分辨率<=4096*4096时,输出分辨率和输入视频一致。(4K 视频是 2K 视频合成实时率的2倍)
DriverType
string
驱动类型,该字段必填。
1. Text:文本驱动,要求 InputSsml 字段必填。
2. OriginalVoice:原声音频驱动,要求 InputAudioUrl 字段必填。
IdentityWrittenUrl
string
PDF 格式授权书,格式为 PDF,文件大小小于10M。
IdentityVideoUrl
string
视频格式授权书,格式为 mp4,文件大小小于5G。
InputAudioUrl
string
驱动数智人的音频 URL,当 DriverType 为 OriginalVoice 时,该字段必填。
1. 支持格式:wav、mp3、wma、m4a、aac、ogg
2. 时长不超过20分钟,不少于1秒。
3. 大小要求:不超过100MB
4. 请保证文件的下载速度,否则会下载失败或导致视频制作实时率下降。
InputSsml
string
播报文本内容,支持 SSML 标签,支持的标签类型参照 数智人 SSML 标记语言规范,标签写法参照示例,内容不能换行,符号需转义。上限2000字,不少于4个字(字数按 unicode 字符数计算)。DriverType 为空或 Text 时,该字段必填。
SpeechParam
object
定义音频的详细参数。DriverType 为 Text 时,该字段必填。
SpeechParam.Speed
float
语速(1.0为正常语速,范围[0.5-1.5],值为0.5时播报语速最慢,值为1.5时播报语速最快, DriverType 为音频驱动类型时,语速控制不生效),DriverType 为 Text 时,该字段必填。
SpeechParam.TimbreKey
string
音色 key,DriverType 为 Text 时,该字段必填。
SpeechParam.Volume
int
音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。
说明:
TimbreKey 在 male_1-20、female_1-23(即男声1-20、女声1-23)间的音色不支持音量调节。
SpeechParam.EmotionCategory
string
控制合成音频的情感,仅支持多情感音色使用,可选值参考个人资产管理 API 分页查询音色列表接口。
SpeechParam.EmotionIntensity
int
控制合成音频情感程度,取值范围为 [50,200],只有 EmotionCategory 不为空时生效。
SpeechParam.TimbreLanguage
string
音色语种,可选语种参考个人资产管理 API 分页查询音色列表 接口,多语种音色在合成时必须选择对应语种。
ConcurrencyType
string
视频制作任务使用的资源类型。
1. Exclusive:使用并发调用,不扣除小时包,需要购买并发,如果没有购买,任务提交失败。
2. Shared:调用会扣除小时包,需要购买小时包,如果没有购买,任务提交失败。
3. 不填:如果购买了并发或者并发和小时包都购买则为“Exclusive”,如果没有购买并发但购买了小时包则为“Shared”,如果都没有购买,任务提交失败。
VideoLoop
int
当音频时长大于视频时长时,生成的视频会对齐音频时长。以下是两种对齐方式:
0:反向拼接、1:正向拼接 。默认 0。
VideoParametersConsistent
int
视频输出标准(码率与帧率)对齐选项,默认0 。
​​0​​:不强制对齐输入视频格式。
​​1​​:对齐输入视频格式。
参数说明:
​​一、选择“0”时
1. ​​码率​​:
默认采用 ​​CRF=17​​ 的编码方式,编码器会根据视频内容复杂度动态调整输出码率,确保质量稳定。
2. ​​帧率​​:
默认输出帧率为 ​​25fps​​。
​​二、选择“1”时
1. ​​码率处理规则​​:
输入码率 ​​< 1000kbps​​ → 输出码率调整为 ​​1000kbps​​。
输入码率 ​​> 9000kbps​​ → 输出码率调整为 ​​9000kbps​​。
输入码率在 ​​[1000kbps, 9000kbps]​​ 范围内 → 输出码率与输入一致。​​
2. 帧率处理规则​​:
输入帧率 ​​< 15fps​​ → 输出帧率调整为 ​​15fps​​。
输入帧率 ​​> 60fps​​ → 输出帧率调整为 ​​60fps​​。
输入帧率在 ​​[15fps, 60fps]​​ 范围内 → 输出帧率与输入一致。
CallbackUrl
string
当用户增加回调 URL 时,将把视频制作结果以固定格式发送 POST 请求到该 URL 地址,固定格式见 附录二: 回调请求体格式,需注意:
1. 限制 CallbackUrl 长度小于1000。
2. 只发送一次请求,无论是哪种问题导致的请求失败,都不会再进行发送。
VideoStorageS3Url
string
可传入含鉴权 S3 协议存储 URL,视频成品会上传至该 URL。
VideoParam
object
定义合成视频的详细参数。
VideoParam.RefPhotoUrl
string
当“人脸 ID 追踪开关”开启时,该字段生效。
用户上传的人脸参考图 URL。
输入视频中包含多张人脸时,VideoMakeNoTrain 视频生成 API 仅能选择一张人脸作为目标替换其口型,实现口型与音频相匹配的效果。此参数用来指定以哪个人物作为目标。
若不输入人脸参考图,默认将选择视频中第一个有人脸的画面中,人脸占比最大的人物为目标。
图像文件要求:
1. 文件大小:文件≤10MB
2. 图像大小:单边分辨率要求在[192~4096]
3. 格式支持 jpg、jpeg、png、bmp、webp
4. 内容:需包含一张清晰的人物正脸,且为视频中出现的人物。
VideoParam.RefPhotoUrls
string[]
当“人脸 ID 追踪开关”开启时,该字段生效。
用户上传的多张人脸参考图 URL 数组,用于辅助定位目标人脸。
适用场景
当输入视频中包含多张人脸,或单张参考图不足以唯一确定目标人脸时(如动漫场景中人物脸型相似度较高),可通过提供多张不同角度、表情或光照条件下的人脸图像(如人物三视图),提升人脸识别的准确性与鲁棒性。系统将综合多张图像提取的人脸特征,与视频中的人脸进行匹配,最终选定目标人脸进行口型替换。
与 RefPhotoUrl 的关系:
若同时传入 RefPhotoUrl 与 RefPhotoUrls,以 RefPhotoUrls 为准,RefPhotoUrl 将被忽略。若两者均未传入,默认将选择视频中第一个有人脸的画面中,人脸占比最大的人物为目标。
图像文件要求(每张图片):
1. 文件大小:单张文件 ≤ 10MB
2. 图像大小:单边分辨率要求在 [192, 4096]
3. 格式支持 jpg、jpeg、png、bmp、webp
4. 内容:需包含清晰的人物正脸或不同角度的人脸,且均为视频中出现的人物。
使用建议:
建议提供 2~5 张不同姿态的图片以获得更优匹配效果,最多支持同时上传 10 张图片。搭配 FaceMatchMode 设为 Strict(严格匹配模式)可进一步提升定位精度。
VideoParam.DisableIdDetect
int
人脸 ID 追踪开关。默认0。
0:开启人脸 ID 追踪。开启后,可以通过人脸 ID 参数(VideoParam.RefPhotoUrl)指定人脸 ID 进行驱动(如果不指定就以识别到的第一个有效人脸 ID 为主)。
1:关闭人脸 ID 追踪。关闭后,人脸 ID 参数(VideoParam.RefPhotoUrl)无效,识别出人脸 ID 均会驱动(如同一帧画面中出现多张人脸,最大的人脸会作为有效人脸 ID)。
VideoParam.DisableOcclusionDetect
int
遮挡检测开关。默认0。
0:开启遮挡检测。开启后,当嘴部有遮挡时,不会驱动口型。
1:关闭遮挡检测。关闭后,当嘴部有遮挡时,也会驱动口型。
VideoParam.EnableFakeTeeth
int
假牙处理开关。默认0。
0:关闭假牙处理。关闭后,最终合成的视频里的牙齿,会学习原视频里的牙齿特征。
1:开启假牙处理。开启后,最终合成的视频里的牙齿会重新生成,不会参考原视频的牙齿特征。
VideoParam.EnableMusicMode
int
唱歌口型模式(适用于输入音频是歌曲的场景)开关。默认 0。
0:关闭唱歌口型模式,使用口播模式。
1:开启唱歌口型模式。
VideoParam.MakeType
string
视频定制类型。
Default:默认配置,视频片段默认会从原视频第0秒开始,StartTime 和 EndTime 均不生效
Custom:指定视频片段,可以填写 StartTime 和 EndTime 来选择片段(需要大于1s),默认生成的视频用该“指定的视频片段”进行正倒放循环。
Circle:首尾帧归位,可以填写 StartTime 来指定视频开始时间(EndTime 不生效),并且此时 VideoLoop 参数不生效。
CustomOnlyStart:通过 StartTime 指定视频起始时间,EndTime 不生效,此时 VideoLoop 参数不生效,默认为反向拼接。
VideoParam.MouthMode
string
口型模式,控制视频中人物的口型幅度,默认值为 Soft。
Soft:柔和口型 (默认)。口型效果柔和自然。
Exaggerated:夸张口型。口型幅度更大,适用于欧美风格表达或需要强化口型表现力的视频场景。
VideoParam.StartTime
float
起始时间,单位秒(有效数字为小数点后3位),当 MakeType 为 Custom 或 Circle 时生效,当填写的时候,默认生成的视频从该位置开始;不填的时候,默认选取视频开始时间。
VideoParam.EndTime
float
结束时间,单位秒(有效数字为小数点后3位),当 MakeType 为 Custom 时生效,当填写的时候,默认结束的视频到该位置结束;不填的时候,默认选取该“选中的全部视频片段”的结束时间
VideoParam.DisableIntervals
Array of [DisableInterval]
定义视频中不驱动时间片段列表(目前最大支持5个时间片段),列表需按照时间顺序递增,否则任务提交失败。
例如:[[1,2],[3,4],[5,6]] 表明原视频的1s~2s、3s~4s、5s~6s不做口型驱动。
VideoParam.FaceMatchMode
string
人脸匹配模式,当"人脸 ID 追踪开关"开启且传入 RefPhotoUrl 或 RefPhotoUrls 时生效。默认值为 Loose。
Strict:严格匹配模式。要求参考照片与视频中人脸高度相似,适用于需要精确锁定特定人物的场景。推荐在以下情况使用: 视频中存在多个相似人脸(如动漫角色)、或需要配合多张参考图(RefPhotoUrls)精准定位目标人脸时。
Loose:宽松匹配模式(默认)。允许参考照片与视频中人脸存在一定差异,适用于参考照片角度、光线与视频不一致的情况,容错性更高。
MultiSpeakerParam
object
多人同屏对话参数。MultiSpeakerParam 非空,且 Speakers 与 NarrationSegments 至少一个非空时,进入多人模式,否则按单人模式处理。模式下其他字段的填写要求详见下方 多人同屏对话模式 章节。

DisableInterval

参数
类型
必须
说明
StartTime
float
不驱动片段起始时间,单位秒,(有效数字为小数点后3位)
EndTime
float
不驱动片段结束时间,单位秒,(有效数字为小数点后3位)

多人同屏对话模式

本节描述传入 MultiSpeakerParam 后进入的多人同屏对话模式。模式定位:在同一参考视频中为多个出场人物分别指定人脸图片、各自台词音频以及每个音频对应视频哪些时间区间,实现多人对话。

1. 模式生效条件

MultiSpeakerParam.Speakers 或 MultiSpeakerParam.NarrationSegments 至少一个非空。两者均为空时等价于未传入,仍按单人模式处理。

2. MultiSpeakerParam 字段说明

MultiSpeakerParam

参数
类型
必须
说明
Speakers
Array of Speaker
否¹
说话人列表,最多3个。
NarrationSegments
Array of AudioSegment
否¹
旁白片段列表,区间内不驱动人脸。
SilentMouthMode
string
静默嘴型模式,控制视频中对于指定 Speaker 未被 AudioSegments 覆盖的时间段内人物的嘴型表现,不传或传空字符串时按默认值 ForceClosed 处理。
ForceClosed:强制闭嘴。静默时段人物嘴型保持闭合状态。
KeepOriginal:保留原视频。静默时段不替换口型,保留原视频的人物嘴型。
注意:
否¹:Speakers 与 NarrationSegments 不能同时为空。

Speaker

参数
类型
必须
说明
IdPhotoUrl
string
说话人人脸图参考图 URL,要求同 RefPhotoUrl
AudioSegments
Array of AudioSegment
该说话人音频片段列表,同一 Speaker 最多 10 段,总片段数最多30段(含旁白片段数)

AudioSegment

参数
类型
必须
说明
AudioUrl
string
音频文件 URL,要求同 InputAudioUrl(格式、时长、大小限制一致)
StartTime
float
片段起始时间,单位秒(有效数字为小数点后3位)
EndTime
float
片段结束时间,单位秒(有效数字为小数点后3位),需小于或者等于参考视频时长
说明:
同一 Speaker 的 AudioSegments 内部需按时间递增。

3. 模式下其他字段的填写要求

字段

多人同屏对话模式下的要求
DriverType
必须为 OriginalVoice
InputAudioUrl
必须为空(驱动音频由 Speakers[*].AudioSegments 提供)
InputSsml
必须为空
SpeechParam
必须为空
VideoParam.RefPhotoUrl
必须为空(目标人脸由 Speakers[*].IdPhotoUrl 指定)
VideoParam.RefPhotoUrls
必须为空
VideoParam.DisableIdDetect
必须为 0(开启人脸 ID 追踪)
VideoParam.MakeType
必须为 Default
VideoParam.StartTime
必须为 0
VideoParam.EndTime
必须为 0
上表未列出的字段(如 ConcurrencyType、CallbackUrl、VideoStorageS3Url、VideoLoop、VideoParametersConsistent、VideoParam.DisableOcclusionDetect、VideoParam.EnableFakeTeeth、VideoParam.MouthMode、VideoParam.FaceMatchMode 等)保持与单人模式相同的语义和默认行为。

返回参数

参数
类型
必须
说明
TaskId
string
视频制作的任务 ID,携带 TaskId 访问 音视频制作进度查询接口,可获得制作进度和制作结果

请求示例

文本驱动(单人模式)
{
"Header": {},
"Payload": {
"RefVideoUrl": "http://virtualhuman-cos-test-1251316161.cos.ap-nanjing.myqcloud.com/ref_video.mp4",
"DriverType": "Text",
"InputSsml": "你好,我是虚拟<phoneme alphabet=\\"py\\" ph=\\"fu4\\">主</phoneme>播",
"SpeechParam": {
"TimbreKey": "female_1",
"Volume": 1,
"Speed": 1.0
}
}
}
音频驱动(单人模式)
{
"Header": {},
"Payload": {
"RefVideoUrl": "http://virtualhuman-cos-test-1251316161.cos.ap-nanjing.myqcloud.com/ref_video.mp4",
"DriverType": "OriginalVoice",
"InputAudioUrl": "http://virtualhuman-cos-test-1251316161.cos.ap-nanjing.myqcloud.com/audio.mp3"
}
}
多人模式

{
"Header": {},
"Payload": {
"RefVideoUrl": "https://xxx.com/two_persons.mp4",
"DriverType": "OriginalVoice",
"MultiSpeakerParam": {
"Speakers": [
{
"IdPhotoUrl": "https://xxx.com/person_a.jpg",
"AudioSegments": [
{ "AudioUrl": "https://xxx.com/a_1.wav", "StartTime": 0.0, "EndTime": 3.5 },
{ "AudioUrl": "https://xxx.com/a_2.wav", "StartTime": 8.0, "EndTime": 11.2 }
]
},
{
"IdPhotoUrl": "https://xxx.com/person_b.jpg",
"AudioSegments": [
{ "AudioUrl": "https://xxx.com/b_1.wav", "StartTime": 4.0, "EndTime": 7.5 }
]
}
],
"NarrationSegments": [
{ "AudioUrl": "https://xxx.com/narration.wav", "StartTime": 12.0, "EndTime": 15.0 }
]
}
}
}


返回示例

成功
{
"Header": {
"Code": 0,
"DialogID": "",
"Message": "",
"RequestID": "fde854eaa981c7f2f7285d1c7eca335b",
"SessionID": "gzb7dec22117297528294581119"
},
"Payload": {
"TaskId": "81883d47c6154edf8e276531f09227b6"
}
}
失败
{
"Header": {
"RequestID": "d99cf740be48d7b0fb1eee4447b71781",
"SessionID": "gz6240ef0317651792698007383",
"DialogID": "",
"Code": 100001,
"Message": "InvalidParameter:请求参数错误: Speed value invalid,ranges:0.5-1.5"
}
}

编码格式转换小教程

该教程专用于将视频转成 H.264 编码格式,主要原理为:通过 FFmpeg 实现转换。

第一步:安装 FFmpeg

Windows 系统:
从 FFmpeg 官网下载 Windows 版本的压缩包。
macOS 系统:
可以使用 Homebrew 进行安装,命令为 brew install ffmpeg。
Linux 系统:
Ubuntu/Debian 系统使用命令 sudo apt-get install ffmpeg。
Fedora 系统使用命令 sudo dnf install ffmpeg。

第二步:转换

1. 准备好两个路径:转换前视频路径和转换后视频路径,然后在“终端”中输入以下指令。
ffmpeg -i 转换前视频路径 -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k 转换后视频路径
例如:
转换前视频路径为:“/Users/xxxx/Downloads/picture/video/视频名.mov”
转换后视频路径为:“/Users/xxxx/Downloads/picture/video/转换后视频名.mp4”
2. 则终端输入指令为:
ffmpeg -i "/Users/xxxx/Downloads/picture/video/视频名.mov" -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k "/Users/xxxx/Downloads/picture/video/转换后视频名.mp4"
注意:
Windows 系统需要通过 cd 切换目录到压缩包 .exe 所在的文件夹后,再执行指令。

第三步:验证

验证是否为 H.264:在上一步指定路径下获取已转换的视频后,可借助系统自带播放器或第三方 VLC 等软件检查。