Yêu cầu Render

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

Lưu ý: Các yêu cầu render của chúng tôi được xử lý bất đồng bộ. Sau khi gửi yêu cầu, bạn sẽ ngay lập tức nhận được phản hồi chứa render_id, có thể được sử dụng để truy vấn trạng thái và kết quả render.

Thuộc tínhLoạiBắt buộcVí dụPhạm vi giá trịMô tả
compositeWidthnumbertrue1920720 - 3840Chiều rộng của composite.
compositeHeightnumbertrue1080720 - 3840Chiều cao của composite.
fpsnumbertrue3015 - 60Tốc độ khung hình của composite.
projectDataobjecttrue--Dữ liệu dự án. Có thể được xuất từ trình chỉnh sửa.
cameraobjectfalse--Cấu hình camera tùy chọn cho các cảnh 3D. Điều khiển chế độ chiếu và góc nhìn.

Lưu ý: compositeWidthcompositeHeight có thể khác với widthheight được chỉ định trong projectData. Tuy nhiên, tỷ lệ khung hình của compositeWidth so với compositeHeight phải giữ nguyên tỷ lệ với tỷ lệ khung hình của projectData.width so với projectData.height.

Thiết kế này cho phép cùng một dự án video được xuất ra ở các độ phân giải khác nhau trong khi vẫn giữ nguyên tỷ lệ khung hình gốc.

Cấu hình Camera

Đối tượng camera tùy chọn điều khiển cách các yếu tố 3D được chiếu:

  • mode (chuỗi) - Chế độ chiếu: "perspective" (mặc định) hoặc "orthographic". Chế độ phối cảnh cung cấp độ sâu dựa trên sự ngắn lại; chế độ hình chiếu song song giữ nguyên các đường song song.
  • view (chuỗi) - Tên góc nhìn camera đã được định sẵn (ví dụ: "front", "top", "right", "isometric"). Khi được chỉ định, camera sẽ được đặt ở vị trí phù hợp với góc đã định sẵn.

Nếu không có camera nào được cung cấp, góc nhìn phía trước mặc định sẽ được sử dụng.

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
}
};

Phản hồi Render Thành công

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

Phản hồi Render Lỗi

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

Mã Phản hồi

Dưới đây là các mã được trả về bởi API render bất đồng bộ:

  • 0: Thành công – Yêu cầu render bất đồng bộ đã được gửi thành công.
  • 2001: Lỗi tham số – Yêu cầu chứa các tham số không hợp lệ hoặc thiếu.
  • 2002: Người dùng chưa đăng ký – ID người dùng được cung cấp không tồn tại.
  • 2003: Người dùng không phải là thành viên API và không thể sử dụng dịch vụ render.
  • 2004: Dữ liệu dự án không hợp lệ – Trường projectData không phải là một đối tượng JSON hợp lệ.
  • 2005: Số dư render không đủ – Số dư không đủ để tiếp tục với việc render.
  • 2006: Không thể chuyển đổi dữ liệu dự án – Không thể chuyển đổi dữ liệu dự án sang JSON.
  • 2007: Không thể tải lên dữ liệu JSON – Đã xảy ra lỗi trong khi tải lên dữ liệu dự án.
  • 2008: Không thể chuyển đổi dữ liệu render – Tải trọng yêu cầu render không thể được tuần tự hóa.
  • 2009: Không thể gửi yêu cầu render – Đã xảy ra lỗi trong khi gửi yêu cầu.
  • 2010: Thiếu trường thời gian – Trường duration là bắt buộc nhưng bị thiếu.
  • 2011: Trường thời gian không hợp lệ – Trường duration có mặt nhưng không ở định dạng đúng.
  • 2012: Dịch vụ render thất bại – Dịch vụ render gặp lỗi nội bộ.

Nếu bạn gặp mã lỗi không được liệt kê, vui lòng liên hệ với bộ phận hỗ trợ tại [email protected].

Lấy Kết quả Render

Sau khi gửi yêu cầu render bất đồng bộ, bạn có thể sử dụng render_id để truy vấn trạng thái và kết quả render.

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}'

Tham số Yêu cầu

Thuộc tínhLoạiBắt buộcVí dụPhạm vi giá trịMô tả
render_idnumbertrue100000-ID render được trả về từ yêu cầu render ban đầu.

Phản hồi Render Thành công

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"
}

Trạng thái Render

Trường state trong phản hồi có thể có các giá trị sau:

  • pending: Yêu cầu render đang chờ và đang được xử lý
  • rendering: Render hiện đang được xử lý
  • success: Render đã hoàn thành thành công và video đã sẵn sàng
  • failed: Render đã thất bại do lỗi

Xóa Tệp Render

Sử dụng điểm cuối này để xóa vĩnh viễn tệp video đã render và JSON dự án cho một tác vụ đã hoàn thành.

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}'

Tham số Yêu cầu

Thuộc tínhLoạiBắt buộcVí dụPhạm vi giá trịMô tả
render_idnumbertrue100000-ID render bạn muốn xóa. Chỉ các render ở trạng thái thành công mới có thể bị xóa.

Phản hồi Mẫu

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • Hành động xóa là không thể đảo ngược và xóa cả video và tài sản JSON.
  • Các yêu cầu cho các render vẫn đang chờ, đang render, hoặc đã thất bại sẽ bị từ chối.