Skip to content

创建视频合成任务

说明

异步任务,具体进度通过查询接口查看

QPS   10/min

请求地址

http
POST /open/v1/create_video
http
access_token: {{access_token}}

请求参数 Body

字段类型Nested Key类型示例说明
personobjectidstringC-d1af99e0fee34978bc844d43078bf8c9形象列表返回的id
xint0x位置
yint480y位置
figure_typestring 非必传whole_body仅使用公共数字人时,需传该参数。
widthint1080
heightint1920
drive_modestring 非必传"" / random驱动模式。支持正常顺序驱动,和随机帧动作驱动random。默认正常顺序驱动
is_rgba_modebool 非必传,默认falsetrue是否驱动四通道webm 视频。
注意事项:
1. 需要数字人是 webm 格式四通道视频定制的

2. 2025年2月8号以及之后定制的数字人开始生效。

3. 该方式生成的数字人合成视频不含字幕以及背景
backwayint 非必传,默认11指定数字人驱动到素材末尾的播放顺序,1正放,2倒放
audioobjectttsobjecttext文本, 字符串数组,所有内容放到一个字符串上面。使用标点符号分割就行,不用分多个字符串。
文本长度限制为4000以下
多音字支持参考《SSML》
speed浮点数类型,语速范围请在0.5和2之间
audio_man数字人中列表中的audio_man_id数字人的音色(支持api公共声音和api定制声音)
pitch音调,定制声音的音调范围参考《创建语音生成任务》
wav_urlstringmp3、m4a 或者 wav 视频文件,音频文件链接后缀需要带有文件类型,根据音频文件驱动数字人(如需支持字幕,请上传采样率为8000 Hz、16000 Hz,声道类型为单声道的音频),目前只支持以下四种编码:audio/x-wav, audio/mpeg, audio/m4a, video/mp4
typestringtts / audio 二选一生成声音类型,当前默认tts表示通过tts文本生成。 
audio表示通过音频文件生成。
volumeint100音量
languagestringcn语言类型,默认 cn
bg_colorstring背景颜色  #EDEDED
bgobject,可选src_urlstringhttps://res.chanjing.cc/chanjing/static/res/bg/2024-07-22/452976e919084de0abc8764b4ee5f800.png背景图片地址,仅支持 jpg,png格式
xint0x坐标
yint0y坐标
heightint1920图片高度
widthint1080图片宽度
subtitle_configobject, 可选。
字体大小与字体宽高位置计算比较麻烦,相关参数都推荐使用默认值
xint31x坐标,字体显示范围的起始x坐标,推荐31
yint1521y坐标,字体显示范围的起始y坐标,推荐1521
showbooltrue是否显示字幕
widthint1000字体显示范围的宽,推荐使用1000
heightint200字体显示范围的高,推荐使用200
font_sizeint64字体大小,推荐64
colorstring,可选#000000字体颜色值
stroke_colorstring,可选#000000字体描边颜色值
stroke_widthint,可选7字体描边宽度,推荐使用7
font_idstring,可选字体id《获取支持的字体列表》
screen_widthint屏幕宽度默认 1080
screen_heightint屏幕高度默认 1920
modelint1非必填,默认基础版,1为高质版(开通需咨询客服)
callbackstring任务结束后会向该地址发送一个 POST 请求。请求体的格式和拉取视频详情查询结果返回的 data 相同
add_compliance_watermarkbooltrue是否添加 AI 作品合规水印
compliance_watermark_positionint0-左上
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传入参数格式错误
10400AccessToken验证失败
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)