Render Request

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 ซึ่งสามารถใช้เพื่อตรวจสอบสถานะและผลลัพธ์การเรนเดอร์

ทรัพย์สินประเภทจำเป็นตัวอย่างช่วงค่าคำอธิบาย
compositeWidthnumbertrue1920720 - 3840ความกว้างของคอมโพสิต
compositeHeightnumbertrue1080720 - 3840ความสูงของคอมโพสิต
fpsnumbertrue3015 - 60อัตราเฟรมของคอมโพสิต
projectDataobjecttrue--ข้อมูลโครงการ สามารถส่งออกจากตัวแก้ไข
cameraobjectfalse--การกำหนดค่ากล้องที่ไม่บังคับสำหรับฉาก 3D ควบคุมโหมดการฉายและมุมมอง

หมายเหตุ: compositeWidth และ compositeHeight อาจแตกต่างจาก width และ height ที่ระบุใน projectData อย่างไรก็ตาม อัตราส่วนของ compositeWidth ต่อ compositeHeight จะต้องคงที่กับอัตราส่วนของ projectData.width ต่อ projectData.height

การออกแบบนี้ช่วยให้สามารถส่งออกโครงการวิดีโอเดียวกันในความละเอียดที่แตกต่างกันในขณะที่ยังคงรักษาอัตราส่วนเดิม

การกำหนดค่ากล้อง

วัตถุ camera ที่ไม่บังคับควบคุมวิธีการที่องค์ประกอบ 3D ถูกฉาย:

  • mode (string) - โหมดการฉาย: "perspective" (ค่าเริ่มต้น) หรือ "orthographic" โหมด perspective จะให้การย่อส่วนตามความลึก; orthographic จะรักษาเส้นขนาน
  • view (string) - ชื่อมุมมองกล้องที่ตั้งไว้ล่วงหน้า (เช่น "front", "top", "right", "isometric"). เมื่อระบุ กล้องจะถูกวางในตำแหน่งที่ตรงกับมุมที่ตั้งไว้ล่วงหน้า

หากไม่มี camera ถูกระบุ จะใช้มุมมองด้านหน้าของ perspective เป็นค่าเริ่มต้น

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: ผู้ใช้ไม่ได้ลงทะเบียน – รหัสผู้ใช้ที่ให้มาไม่มีอยู่จริง
  • 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-รหัสการเรนเดอร์ที่ส่งกลับจากคำขอการเรนเดอร์เริ่มต้น

การตอบกลับการเรนเดอร์ที่สำเร็จ

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-รหัสการเรนเดอร์ที่คุณต้องการลบออก สามารถลบได้เฉพาะการเรนเดอร์ในสถานะสำเร็จเท่านั้น

ตัวอย่างการตอบกลับ

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • การลบไม่สามารถย้อนกลับได้และจะลบทั้งวิดีโอและทรัพย์สิน JSON
  • คำขอสำหรับการเรนเดอร์ที่ยังรออยู่ กำลังเรนเดอร์ หรือล้มเหลวจะถูกปฏิเสธ