การเริ่มต้นใช้งาน

Chillin Render API ช่วยให้คุณสามารถระบุเนื้อหาวิดีโอและพารามิเตอร์ที่จะถูกเรนเดอร์โดยการกำหนดโครงสร้าง JSON เช่นตัวอย่างด้านล่าง

  • ไปที่ Render Console เพื่อขอเครดิต Render API และสร้างคีย์ Render API ของคุณ

  • ส่งคำขอ POST ไปยังจุดสิ้นสุด Render API พร้อมกับคีย์ API ของคุณ:

curl-example.sh
1curl -X POST https://render-api.chillin.online/render/v1 \ 2-H "Accept: application/json" \ 3-H "Content-Type: application/json" \ 4-H "Authorization: Bearer YOUR_API_KEY" \ 5-d @request.json
request.json
1{ 2"compositeWidth": 1920, 3"compositeHeight": 1080, 4"fps": 30, 5"projectData": { 6 "type": "", 7 "width": 1920, 8 "height": 1080, 9 "fill": "#000000", 10 "view": [ 11 { 12 "id": "bba95c7f-652b-4380-b166-6bece989f527", 13 "type": "Image", 14 "start": 0, 15 "duration": 5, 16 "trackIndex": 0, 17 "x": 0, 18 "y": 0, 19 "width": 3629, 20 "height": 5444, 21 "blendMode": "normal", 22 "anchorX": 1814.5, 23 "anchorY": 2722, 24 "rotation": 0, 25 "scaleX": 0.19838354151359294, 26 "scaleY": 0.19838354151359294, 27 "alpha": 1, 28 "skewX": 0, 29 "skewY": 0, 30 "hidden": false, 31 "locked": false, 32 "keyframes": [], 33 "externalUrl": "https://images.pexels.com/photos/33189512/pexels-photo-33189512.jpeg", 34 "ext": "jpeg" 35 } 36 ], 37 "audio": [], 38 "effect": [], 39 "transition": [], 40 "version": 0, 41 "duration": 5 42} 43}; 44

API ทำงานในโหมด async และส่งคืนการตอบกลับเช่นนี้:

async_response.json
1{ 2"code": 0, 3"data": { 4 "message": "Async render request submitted successfully", 5 "render_id": 100000, 6 "status": "processing" 7}, 8"msg": "success" 9} 10

แนวคิดหลัก

วัตถุ JSON ทั้งหมดจะรวมวัตถุโปรเจกต์วิดีโอ ซึ่งระบุความกว้างของภาพรวม ความสูงของภาพรวม และความละเอียดของวิดีโอ

วัตถุโปรเจกต์ประกอบด้วยพารามิเตอร์พื้นฐานสำหรับการเรนเดอร์วิดีโอ เช่น ความกว้าง ความสูง ระยะเวลา สีพื้นหลัง และอื่นๆ

โปรเจกต์ยังรวมถึงหนึ่งหรือหลายองค์ประกอบ โดยแต่ละองค์ประกอบจะแทนที่ส่วนประกอบของวิดีโอ เช่น วิดีโอ รูปภาพ ข้อความ รูปร่าง เสียง หรือเอฟเฟกต์

แต่ละองค์ประกอบมีพารามิเตอร์เฉพาะสำหรับส่วนประกอบ เช่น ตำแหน่ง ขนาด สี เนื้อหา และอื่นๆ

project.json
1{ 2"compositeWidth": 1920, 3"compositeHeight": 1080, 4"fps": 30, 5"projectData": { 6 "type": "", 7 "width": 1920, 8 "height": 1080, 9 "fill": "#000000", 10 "view": [ 11 { 12 "id": "8ecf7475-2c6c-47f9-827b-a09c7913f4c0", 13 "type": "Image", 14 "start": 0, 15 "duration": 5, 16 "trackIndex": 0, 17 "x": -570.0335392757963, 18 "y": -170.90659033307685, 19 "blendMode": "normal", 20 "anchorX": 1302, 21 "anchorY": 2312, 22 "rotation": 0, 23 "scaleX": 0.23356401384083045, 24 "scaleY": 0.23356401384083045, 25 "alpha": 1, 26 "skewX": 0, 27 "skewY": 0, 28 "keyframes": [], 29 "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg", 30 "ext": "jpeg" 31 } 32 ], 33 "audio": [], 34 "effect": [], 35 "transition": [], 36 "version": 0, 37 "duration": 5 38} 39}; 40

พื้นที่ 3D & กล้อง

เอนจินการเรนเดอร์รองรับทั้งองค์ประกอบ 2D และ 3D ในขณะที่ผืนผ้าใบถูกกำหนดด้วย width และ height ในพิกเซล เอนจินจะใช้กล้องมุมมองสำหรับการเรนเดอร์ 3D:

  • ระบบพิกัด: พิกัด x และ y แทนตำแหน่งบนผืนผ้าใบ 2D พิกัด z ควบคุมความลึกในพื้นที่ 3D
  • การฉายแบบพิกเซล-สมบูรณ์: ที่ z=0 หนึ่งหน่วยโลกเท่ากับหนึ่งพิกเซล ทำให้สามารถทำงานร่วมกับการทำงาน 2D ได้
  • การหมุน 3D: องค์ประกอบสามารถหมุนรอบแกน X, Y และ Z โดยใช้คุณสมบัติ rotationX, rotationY และ rotation (แกน Z)

การออกแบบนี้ช่วยให้สามารถผสมผสานองค์ประกอบ 2D และ 3D ได้อย่างราบรื่นในโปรเจกต์เดียว องค์ประกอบ 2D แบบดั้งเดิม (ที่ z=0) จะเรนเดอร์ได้เหมือนเดิม ในขณะที่องค์ประกอบ 3D สามารถวางและหมุนในพื้นที่สามมิติได้

ตัวอย่างองค์ประกอบ 3D

นี่คือตัวอย่างง่ายๆ ขององค์ประกอบลูกบาศก์ 3D:

3d-cube-example.json
1{ 2"id": "3d-cube-001", 3"type": "3D", 4"start": 0, 5"duration": 5, 6"trackIndex": 0, 7"x": 960, 8"y": 540, 9"z": 0, 10"width": 200, 11"height": 200, 12"anchorX": 100, 13"anchorY": 100, 14"rotation": 0, 15"rotationX": 30, 16"rotationY": 45, 17"scaleX": 1, 18"scaleY": 1, 19"scaleZ": 1, 20"alpha": 1, 21"ext": "geometry", 22"geometryType": "cube", 23"nodeCategory": "basic", 24"geometryColor": "#4A90E2" 25} 26

ความแตกต่างที่สำคัญจากองค์ประกอบ 2D:

  • type: "3D" ระบุว่านี่เป็นองค์ประกอบ 3D
  • z, rotationX, rotationY, และ scaleZ เปิดใช้งานการเปลี่ยนแปลง 3D
  • geometryType ระบุรูปร่าง 3D (ลูกบาศก์, ลูกบอล, กระบอก, ฯลฯ)
  • geometryColor ตั้งค่าสีพื้นฐานของเรขาคณิต 3D

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับองค์ประกอบ 3D โปรดดูที่เอกสาร 3D Element

JSON Schema

คำขอ JSON ของคุณต้องปฏิบัติตาม JSON schema ที่กำหนดในเอกสารนี้อย่างเคร่งครัด คุณสามารถทดสอบและสร้างคำขอ JSON ที่สอดคล้องกันใน Chillin Video Editor