渲染请求

curl-example.sh
curl -X POST https://render-api.chillin.online/render/v1 \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d @request.json

注意:我们的渲染请求是异步处理的。提交请求后,您将立即收到一个包含 render_id 的响应,该 ID 可用于查询渲染状态和结果。

属性类型必需示例值范围描述
compositeWidthnumbertrue1920720 - 3840合成的宽度。
compositeHeightnumbertrue1080720 - 3840合成的高度。
fpsnumbertrue3015 - 60合成的帧率。
projectDataobjecttrue--项目数据。可以从编辑器导出。
cameraobjectfalse--3D 场景的可选相机配置。控制投影模式和视角。

注意:compositeWidthcompositeHeight 可以与 projectData 中指定的 widthheight 不同。然而,compositeWidthcompositeHeight 的宽高比必须与 projectData.widthprojectData.height 的宽高比保持一致。

这种设计允许同一个视频项目以不同的分辨率导出,同时保持原始的宽高比。

相机配置

可选的 camera 对象控制 3D 元素的投影方式:

  • mode(字符串) - 投影模式:"perspective"(默认)或 "orthographic"。透视提供基于深度的缩短效果;正交保持平行线。
  • view(字符串) - 预设相机视角名称(例如,"front""top""right""isometric")。指定时,相机会被定位以匹配预设角度。

如果未提供 camera,则使用默认的透视前视图。

request.json
{
"compositeWidth": 1920,
"compositeHeight": 1080,
"fps": 30,
"projectData": {
  "type": "",
  "width": 1920,
  "height": 1080,
  "fill": "#000000",
  "view": [
    {
      "id": "8ecf7475-2c6c-47f9-827b-a09c7913f4c0",
      "type": "Image",
      "start": 0,
      "duration": 5,
      "trackIndex": 0,
      "x": -570.0335392757963,
      "y": -170.90659033307685,
      "blendMode": "normal",
      "anchorX": 1302,
      "anchorY": 2312,
      "rotation": 0,
      "scaleX": 0.23356401384083045,
      "scaleY": 0.23356401384083045,
      "alpha": 1,
      "skewX": 0,
      "skewY": 0,
      "keyframes": [],
      "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
      "ext": "jpeg"
    }
  ],
  "audio": [],
  "effect": [],
  "transition": [],
  "version": 0,
  "duration": 5
}
};

成功渲染响应

success_response.json
{
"code": 0,
"data": {
  "message": "Async render request submitted successfully",
  "render_id": 105586,
  "status": "processing"
},
"msg": "success"
}

错误渲染响应

error_response.json
{
"code": 2004,
"data": {},
"msg": "invalid project data: invalid view array: view item 0: missing required field: id"
}

响应代码

以下是异步渲染 API 返回的代码:

  • 0:成功 - 异步渲染请求已成功提交。
  • 2001:参数错误 - 请求包含无效或缺失的参数。
  • 2002:用户未注册 - 提供的用户 ID 不存在。
  • 2003:用户不是 API 成员,无法使用渲染服务。
  • 2004:无效的项目数据 - projectData 字段不是有效的 JSON 对象。
  • 2005:渲染余额不足 - 余额不足以继续渲染。
  • 2006:无法序列化项目数据 - 无法将项目数据转换为 JSON。
  • 2007:上传 JSON 数据失败 - 上传项目数据时发生错误。
  • 2008:无法序列化渲染数据 - 渲染请求负载无法序列化。
  • 2009:发送渲染请求失败 - 发送请求时发生错误。
  • 2010:缺少持续时间字段 - duration 字段是必需的,但缺失。
  • 2011:无效的持续时间字段 - duration 字段存在但格式不正确。
  • 2012:渲染服务失败 - 渲染服务遇到内部错误。

如果您遇到未列出的错误代码,请通过 [email protected] 联系支持。

获取渲染结果

提交异步渲染请求后,您可以使用 render_id 查询渲染状态和结果。

get-result-example.sh
curl -X POST https://render-api.chillin.online/render/result \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"render_id": 100000}'

请求参数

属性类型必需示例值范围描述
render_idnumbertrue100000-从初始渲染请求返回的渲染 ID。

成功渲染响应

result_response.json
{
"code": 0,
"data": {
  "render": {
    "create_at": "2025-06-27T12:37:21.684337Z",
    "json_url": "https://cloud.chillin.online/project_xxx.json?verify=xxx",
    "render_id": 105549,
    "state": "success",
    "video_url": "https://cloud.chillin.online/video_xxx.mp4?verify=xxx"
  }
},
"msg": "success"
}

渲染状态

响应中的 state 字段可以具有以下值:

  • pending:渲染请求已排队,等待处理
  • rendering:渲染正在处理
  • success:渲染成功完成,视频已准备好
  • failed:渲染因错误而失败

删除渲染文件

使用此端点永久删除已完成任务的渲染视频文件和项目 JSON。

delete-render-files.sh
curl -X POST https://render-api.chillin.online/render/delete-files \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"render_id": 100000}'

请求参数

属性类型必需示例值范围描述
render_idnumbertrue100000-您想要清理的渲染 ID。只有成功状态的渲染可以被删除。

示例响应

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • 删除操作是不可逆的,会同时删除视频和 JSON 资产。
  • 对于仍在待处理、渲染中或失败的渲染请求,将被拒绝。