创建视频合成任务
说明
异步任务,具体进度通过查询接口查看
QPS 10/min
请求地址
http
POST /open/v1/create_video
Header
http
access_token: {{access_token}}
请求参数 Body
字段 | 类型 | Nested Key | 类型 | 示例 | 说明 |
---|---|---|---|---|---|
person | object | id | string | C-d1af99e0fee34978bc844d43078bf8c9 | 形象列表返回的id |
x | int | 0 | x位置 | ||
y | int | 480 | y位置 | ||
figure_type | string 非必传 | whole_body | 仅使用公共数字人时,需传该参数。 | ||
width | int | 1080 | 宽 | ||
height | int | 1920 | 高 | ||
drive_mode | string 非必传 | "" / random | 驱动模式。支持正常顺序驱动,和随机帧动作驱动random 。默认正常顺序驱动 | ||
is_rgba_mode | bool 非必传,默认false | true | 是否驱动四通道webm 视频。 注意事项: 1. 需要数字人是 webm 格式四通道视频定制的 2. 2025年2月8号以及之后定制的数字人开始生效。 3. 该方式生成的数字人合成视频不含字幕以及背景 | ||
backway | int 非必传,默认1 | 1 | 指定数字人驱动到素材末尾的播放顺序,1正放,2倒放 | ||
audio | object | tts | object | text | 文本, 字符串数组,所有内容放到一个字符串上面。使用标点符号 分割就行,不用分多个字符串。文本长度限制为4000以下 多音字支持参考《SSML》 |
speed | 浮点数类型,语速范围请在0.5和2之间 | ||||
audio_man | 数字人中列表中的audio_man_id 数字人的音色(支持api公共声音和api定制声音) | ||||
pitch | 音调,定制声音的音调范围参考《创建语音生成任务》 | ||||
wav_url | string | mp3、m4a 或者 wav 视频文件,音频文件链接后缀需要带有文件类型,根据音频文件驱动数字人(如需支持字幕,请上传采样率为8000 Hz、16000 Hz,声道类型为单声道的音频),目前只支持以下四种编码:audio/x-wav, audio/mpeg, audio/m4a, video/mp4 | |||
type | string | tts / audio 二选一 | 生成声音类型,当前默认tts 表示通过tts文本生成。 audio 表示通过音频文件生成。 | ||
volume | int | 100 | 音量 | ||
language | string | cn | 语言类型,默认 cn | ||
bg_color | string | 背景颜色 #EDEDED | |||
bg | object,可选 | src_url | string | https://res.chanjing.cc/chanjing/static/res/bg/2024-07-22/452976e919084de0abc8764b4ee5f800.png | 背景图片地址,仅支持 jpg ,png 格式 |
x | int | 0 | x坐标 | ||
y | int | 0 | y坐标 | ||
height | int | 1920 | 图片高度 | ||
width | int | 1080 | 图片宽度 | ||
subtitle_config | object, 可选。 字体大小与字体宽高位置计算比较麻烦,相关参数都推荐使用默认值 | x | int | 31 | x坐标,字体显示范围的起始x坐标,推荐31 |
y | int | 1521 | y坐标,字体显示范围的起始y坐标,推荐1521 | ||
show | bool | true | 是否显示字幕 | ||
width | int | 1000 | 字体显示范围的宽,推荐使用1000 | ||
height | int | 200 | 字体显示范围的高,推荐使用200 | ||
font_size | int | 64 | 字体大小,推荐64 | ||
color | string,可选 | #000000 | 字体颜色值 | ||
stroke_color | string,可选 | #000000 | 字体描边颜色值 | ||
stroke_width | int,可选 | 7 | 字体描边宽度,推荐使用7 | ||
font_id | string,可选 | 字体id | 《获取支持的字体列表》 | ||
screen_width | int | 屏幕宽度默认 1080 | |||
screen_height | int | 屏幕高度默认 1920 | |||
model | int | 1 | 非必填,默认基础版,1为高质版(开通需咨询客服) | ||
callback | string | 任务结束后会向该地址发送一个 POST 请求。请求体的格式和拉取视频详情查询结果返回的 data 相同 | |||
add_compliance_watermark | bool | true | 是否添加 AI 作品合规水印 | ||
compliance_watermark_position | int | 0-左上 1-右上 2-左下 3-右下 | 默认值为0,左上,支持自定义方位 |
数字人 person.id 和 audio.tts.audio_man 请求id 参考《拉取形象列表》返回id
回调参数
json
{
"id": "1914661228878233600",
"status": 30,
"progress": 100,
"msg": "",
"video_url": "https://res.chanjing.cc/chanjing/prod/dhaio/output/2025-04-22/1914661228878233600-1745325829-output.mp4",
"subtitle_data_url": "",
"create_time": 1745325784,
"preview_url": "https://res.chanjing.cc/chanjing/prod/dhaio/output/2025-04-22/1914661228878233600-1745325829-cover.jpg",
"duration": 45,
"audio_urls": [
"https://res.chanjing.cc/chanjing/res/upload/tts/2025-04-22/c316fca6f821df9ea8874f8fa106ce38.wav"
]
}
请求示例
json
{
"person": {
"id":"C-d1af99e0fee34978bc844d43078bf8c9",
"x": 0,
"y": 480,
"width": 1080,
"height": 1440
},
"audio": {
"tts": {
"text": [
"君不见黄河之水天上来,奔流到海不复回。"
],
"speed": 1,
"audio_man": "C-f2429d07554749839849497589199916"
},
"wav_url":"http://chanjian.cc/2024-07-17/a7b3696424262c07add42b24dadfb08f.wav",
"type": "tts",
"volume": 100,
"language": "cn"
},
"bg_color": "#EDEDED",
"screen_width": 1080,
"screen_height": 1920
}
响应JOSN
json
{
"trace_id": "8d10659438827bd4d59eaa2696f9d391",
"code": 0,
"msg": "success",
"data": "9499ed79995c4bdb95f0d66ca84419fd"
}
响应参数
字段 | 说明 |
---|---|
code | 响应状态码 |
msg | 响应消息 |
data | 创建视频id |
响应状态码说明
code | 说明 |
---|---|
0 | 响应成功 |
400 | 传入参数格式错误 |
10400 | AccessToken验证失败 |
APP状态错误 | |
缺少 tts 文本 | |
缺少音频文件 | |
输入文本不可以包含 emoji | |
不支持的图片格式,支持png,jpeg,jpg格式图片 | |
参数 screen_width 或者 screen_height 不合法 | |
字幕宽度不能超过屏幕宽度 | |
字幕高度不能超过屏幕高度 | |
字幕颜色格式不正确,正确格式为 #RRGGBB | |
该数字人不是 webm 类型,无法生成四通道视频 | |
该数字人需制定形态参数 figure_type | |
背景颜色格式不正确,正确格式为 #RRGGBB | |
40000 | 参数错误 |
40001 | 超出QPS限制 |
40002 | 制作视频时长到达上限 |
50000 | 系统内部错误 |
定制数字人不存在 | |
该公共数字人没有选择正确的形象 | |
数字人高不允许为奇数 | |
没有找到对应的声ID | |
声音ID对应的audio_man不存在 | |
50011 | 作品存在不合法规文字内容 |
请求示例
bash
curl -L 'https://www.chanjing.cc/api/open/v1/create_video' -H 'access_token: Yqmvg4SOinq+i0RLAHmwd03zuZxYrdT92gIwNluONtjOCr0FCVDCBWDFCTp8o4Y6' -H 'Content-Type: application/json' -d '{
"person": {
"id": "1421df93d7754ee19dcaa18e85b68f39",
"x": 0,
"y": 0,
"width": 1080,
"height": 1920,
"figure_type": "sit_body",
"drive_mode":"random"
},
"audio": {
"tts": {
"text": ["你好,这是测试蝉镜数字人,黄河之水天上来"],
"speed": 1,
"audio_man": "C-CASE-d8dfe5838e774124b04e0ad41c194847"
},
"wav_url": "",
"type": "tts",
"volume": 100,
"language": "cn"
},
"bg_color": "#d92127",
"screen_width": 1080,
"screen_height": 1920
}
'
go
import requests
import json
url = "https://www.chanjing.cc/api/open/v1/create_video"
payload = json.dumps({
"person": {
"id": "1421df93d7754ee19dcaa18e85b68f39",
"x": 0,
"y": 0,
"width": 1080,
"height": 1920,
"figure_type": "sit_body",
"drive_mode": "random"
},
"audio": {
"tts": {
"text": [
"你好,这是测试蝉镜数字人,黄河之水天上来"
],
"speed": 1,
"audio_man": "C-CASE-d8dfe5838e774124b04e0ad41c194847"
},
"wav_url": "",
"type": "tts",
"volume": 100,
"language": "cn"
},
"bg_color": "#d92127",
"screen_width": 1080,
"screen_height": 1920
})
headers = {
'access_token': 'Yqmvg4SOinq+i0RLAHmwd03zuZxYrdT92gIwNluONtjOCr0FCVDCBWDFCTp8o4Y6',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"person\": {\n \"id\": \"1421df93d7754ee19dcaa18e85b68f39\",\n \"x\": 0,\n \"y\": 0,\n \"width\": 1080,\n \"height\": 1920,\n \"figure_type\": \"sit_body\",\n \"drive_mode\":\"random\"\n },\n \"audio\": {\n \"tts\": {\n \"text\": [\"你好,这是测试蝉镜数字人,黄河之水天上来\"],\n \"speed\": 1,\n \"audio_man\": \"C-CASE-d8dfe5838e774124b04e0ad41c194847\"\n },\n \"wav_url\": \"\",\n \"type\": \"tts\",\n \"volume\": 100,\n \"language\": \"cn\"\n },\n \"bg_color\": \"#d92127\",\n \n \"screen_width\": 1080,\n \"screen_height\": 1920\n}\n");
Request request = new Request.Builder()
.url("https://www.chanjing.cc/api/open/v1/create_video")
.method("POST", body)
.addHeader("access_token", "Yqmvg4SOinq+i0RLAHmwd03zuZxYrdT92gIwNluONtjOCr0FCVDCBWDFCTp8o4Y6")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
py
import requests
import json
url = "https://www.chanjing.cc/api/open/v1/create_video"
payload = json.dumps({
"person": {
"id": "1421df93d7754ee19dcaa18e85b68f39",
"x": 0,
"y": 0,
"width": 1080,
"height": 1920,
"figure_type": "sit_body",
"drive_mode": "random"
},
"audio": {
"tts": {
"text": [
"你好,这是测试蝉镜数字人,黄河之水天上来"
],
"speed": 1,
"audio_man": "C-CASE-d8dfe5838e774124b04e0ad41c194847"
},
"wav_url": "",
"type": "tts",
"volume": 100,
"language": "cn"
},
"bg_color": "#d92127",
"screen_width": 1080,
"screen_height": 1920
})
headers = {
'access_token': 'Yqmvg4SOinq+i0RLAHmwd03zuZxYrdT92gIwNluONtjOCr0FCVDCBWDFCTp8o4Y6',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)