渲染請求

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 資產。
  • 對於仍在等待、渲染中或失敗的渲染請求將被拒絕。