Skip to content

Volcengine 视频对口型 ​

本页由 ModelFold 文档站根据上游官方 OpenAPI 文档同步生成。接口路径、参数、示例与官方保持一致;品牌与 API 域名已替换为 ModelFold。

接口 ​

POST /jobs/createTask

完整 URL: https://ai.modelfold.online/v1/jobs/createTask

鉴权:所有请求都需要 Authorization: Bearer <API_KEY> 请求头。

创建任务 ​

调用该接口可创建一个新的视频口型同步任务。上传一段视频和一段音频文件,模型将驱动视频中的口型与目标音频匹配。

  • 查询任务详情 — 提交任务后,可通过统一查询接口查看任务进度并获取生成结果

TIP

生产环境建议优先使用 callBackUrl 参数接收任务完成通知,而不是持续轮询任务状态接口。

文件上传 ​

TIP

调用该接口前需要先上传文件?请参阅 文件上传 API 快速入门。

输出规格 ​

生成的视频将以 MP4 格式返回,帧率为 25 fps。最终输出视频时长以音频时长为准:如果原始视频长于音频,视频将被截断;如果原始视频短于音频,视频将循环播放。

相关资源 ​

请求参数 ​

请求体 (application/json) ​

参数类型必填说明
modelstring是用于视频口型同步的模型名称。必填字段。
- 该端点必须使用 volcengine/video-to-video-lip-sync 模型 默认值:"volcengine/video-to-video-lip-sync"。 可选值:volcengine/video-to-video-lip-sync。 示例:volcengine/video-to-video-lip-sync。
inputobject是视频口型同步任务的输入参数。
  input.modestring是口型同步生成的服务模式。
- lite:适用于单人正面视频,处理速度更快。
- basic:适用于单人复杂场景,支持场景分割和说话人识别。 可选值:lite / basic。 示例:lite。
  input.video_urlstring是视频素材 URL。支持分辨率:360p–1080p。超过 1080p 的视频将自动压缩至 1080p,小于 360p 的视频暂不支持。支持格式:MOV、MP4、HDR、MKV。推荐编码:H.264。其他格式或编码可能会被转码。最大文件大小:500 MB。码率:1–30 Mbps。帧率:24–60 fps。
  input.audio_urlstring是目标纯人声音频 URL;用于驱动视频口型运动。lite模式音频时长>1s&<=240s,basic模式音频时长>1s&<=210s。支持的文件类型:audio/mpeg、audio/wav、audio/x-wav、audio/aac、audio/mp4、audio/ogg。最大文件大小:10MB。
  input.separate_vocalboolean否是否启用人声分离以抑制背景噪音。默认值:false。 默认值:false。 示例:false。
  input.open_scenedetboolean否是否启用场景分割和说话人识别。仅在 Basic 模式下支持。默认值:false。 默认值:false。 示例:false。
  input.align_audioboolean否Lite 模式下支持。当音频时长超过视频时长时,是否循环播放视频。默认值:true。 默认值:true。 示例:true。
  input.align_audio_reverseboolean否Lite 模式下支持。是否倒序循环播放视频。需要 align_audio 设置为 true。默认值:false。 默认值:false。 示例:false。
  input.templ_start_secondsnumber否Lite 模式下支持。模板视频的起始时间,单位为秒。默认值:0。 默认值:0。 示例:0。
callBackUrlstring否回调 URL。任务完成后,ModelFold 会将结果发送到该业务回调地址。回调签名校验见 Webhook 签名校验指南。

请求示例 ​

bash
curl -X POST "https://ai.modelfold.online/v1/jobs/createTask" \
  -H "Authorization: Bearer $MODELFOLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "volcengine/video-to-video-lip-sync",
  "input": {
    "mode": "lite",
    "video_url": "https://your-domain.com/video/example.mp4",
    "audio_url": "https://your-domain.com/audio/speech.mp3",
    "separate_vocal": false,
    "open_scenedet": false,
    "align_audio": true,
    "align_audio_reverse": false,
    "templ_start_seconds": 0
  },
  "callBackUrl": "https://your-domain.com/api/callback"
}'
json
{
  "model": "volcengine/video-to-video-lip-sync",
  "input": {
    "mode": "lite",
    "video_url": "https://your-domain.com/video/example.mp4",
    "audio_url": "https://your-domain.com/audio/speech.mp3",
    "separate_vocal": false,
    "open_scenedet": false,
    "align_audio": true,
    "align_audio_reverse": false,
    "templ_start_seconds": 0
  },
  "callBackUrl": "https://your-domain.com/api/callback"
}

响应 ​

200 — 请求成功 ​

参数类型必填说明
codeinteger是请求状态码。请求失败时 HTTP 状态仍为 200,请始终以本字段判断:200 表示成功,其他值均表示失败,原因见 msg。常见值:401 API key 无效或缺失;402 积分不足;429 超出频率限制;422 或 500 请求未能处理(请先查看 msg、检查参数,再决定是否重试)。 可选值:200 / 401 / 402 / 404 / 422 / 429 / 433 / 455 / 500 / 501 / 505。 示例:200。
msgstring是响应消息,失败时的错误描述
dataobject是—
  data.taskIdstring是可以使用任务 ID 与“获取任务详细信息”端点一起查询任务状态。
json
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_volcengine-video-to-video-lip-sync_1234567890"
  }
}

回调 ​

videoTaskCompleted ​

回调地址:{request.body#/callBackUrl}(即请求体里的 callBackUrl)。

当 volcengine/video-to-video-lip-sync 任务成功或失败时,系统会发送此回调。

回调体参数

参数类型必填说明
codeinteger是统一回调状态码:成功为 200,失败为 501。 可选值:200 / 501。 示例:200。
msgstring是统一回调消息。 可选值:Playground task completed successfully. / Playground task failed.。 示例:Playground task completed successfully.。
dataobject是—
  data.taskIdstring是任务唯一标识符。
  data.modelstring是任务使用的模型。 可选值:volcengine/video-to-video-lip-sync。 示例:volcengine/video-to-video-lip-sync。
  data.statestring是任务最终状态。 可选值:success / fail。 示例:success。
  data.paramstring是包含已提交任务参数的 JSON 字符串。
  data.resultJsonstring否任务成功时,包含 resultUrls、firstFrameUrl、lastFrameUrl 或 resultObject 的 JSON 字符串。仅在 state 为 success 时出现。
  data.failCodestring否失败码,数字字符串,如 "400"、"500"。仅在 state 为 fail 时出现。
  data.failMsgstring否失败原因,仅在 state 为 fail 时出现。
  data.costTimeinteger否处理耗时(秒),成功和失败回调都会返回。
  data.completeTimeinteger否任务完成时间戳。
  data.createTimeinteger否任务创建时间戳。
  data.updateTimeinteger否完成时间请以 completeTime 为准;updateTime 可能与 createTime 相同。
  data.creditsConsumednumber否本任务消耗的积分;失败任务为 0。

任务成功完成

json
{
  "code": 200,
  "msg": "Playground task completed successfully.",
  "data": {
    "taskId": "task_example_video_webhook_001",
    "model": "volcengine/video-to-video-lip-sync",
    "state": "success",
    "param": "{\"input\":\"{\\\"mode\\\":\\\"lite\\\",\\\"video_url\\\":\\\"https://example.com/input-video.mp4\\\",\\\"audio_url\\\":\\\"https://example.com/input-audio.mp3\\\",\\\"separate_vocal\\\":false,\\\"open_scenedet\\\":false,\\\"align_audio\\\":true,\\\"align_audio_reverse\\\":false,\\\"templ_start_seconds\\\":0}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"volcengine/video-to-video-lip-sync\"}",
    "resultJson": "{\"resultUrls\":[\"https://example.com/generated-video.mp4\"]}",
    "costTime": 12,
    "completeTime": 1234567890,
    "createTime": 1234560000,
    "updateTime": 1234567890,
    "creditsConsumed": 1.23
  }
}

任务失败

json
{
  "code": 501,
  "msg": "Playground task failed.",
  "data": {
    "taskId": "task_example_video_webhook_001",
    "model": "volcengine/video-to-video-lip-sync",
    "state": "fail",
    "param": "{\"input\":\"{\\\"mode\\\":\\\"lite\\\",\\\"video_url\\\":\\\"https://example.com/input-video.mp4\\\",\\\"audio_url\\\":\\\"https://example.com/input-audio.mp3\\\",\\\"separate_vocal\\\":false,\\\"open_scenedet\\\":false,\\\"align_audio\\\":true,\\\"align_audio_reverse\\\":false,\\\"templ_start_seconds\\\":0}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"volcengine/video-to-video-lip-sync\"}",
    "failCode": "400",
    "failMsg": "<error detail>",
    "costTime": 12,
    "creditsConsumed": 0
  }
}

ModelFold — 一个 API,接入所有主流 AI 模型。