Bắt Đầu

API Chillin Render cho phép bạn chỉ định nội dung video và các tham số để được render bằng cách định nghĩa một cấu trúc JSON như bên dưới.

  • Truy cập Bảng điều khiển Render để nhận tín dụng API Render và tạo khóa API Render của bạn

  • Gửi một yêu cầu POST đến điểm cuối API Render với khóa API của bạn:

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 hoạt động ở chế độ async và trả về phản hồi như sau:

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

Khái Niệm Cơ Bản

Tất cả các đối tượng JSON bao gồm một đối tượng dự án video, chỉ định chiều rộng tổng hợp, chiều cao tổng hợp và độ phân giải của video.

Đối tượng dự án chứa các tham số cơ bản để render video, chẳng hạn như chiều rộng, chiều cao, thời gian, màu nền và nhiều hơn nữa.

Dự án cũng bao gồm một hoặc nhiều phần tử, nơi mỗi phần tử đại diện cho một thành phần video, chẳng hạn như video, hình ảnh, văn bản, hình dạng, âm thanh hoặc hiệu ứng.

Mỗi phần tử chứa các tham số cụ thể cho thành phần, chẳng hạn như vị trí, kích thước, màu sắc, nội dung, và nhiều hơn nữa.

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

Không Gian 3D & Camera

Công cụ render hỗ trợ cả phần tử 2D và 3D. Trong khi canvas được định nghĩa với widthheight tính bằng pixel, công cụ sử dụng camera phối cảnh cho việc render 3D:

  • Hệ tọa độ: Tọa độ x và y đại diện cho vị trí trên mặt phẳng canvas 2D. Tọa độ z kiểm soát độ sâu trong không gian 3D.
  • Chiếu Chính Xác Pixel: Tại z=0, một đơn vị thế giới bằng một pixel, duy trì tính tương thích với các quy trình làm việc 2D.
  • Xoay 3D: Các phần tử có thể được xoay quanh các trục X, Y, và Z bằng cách sử dụng các thuộc tính rotationX, rotationY, và rotation (trục Z).

Thiết kế này cho phép trộn lẫn một cách liền mạch các phần tử 2D và 3D trong cùng một dự án. Các phần tử 2D truyền thống (với z=0) render chính xác như trước, trong khi các phần tử 3D có thể được định vị và xoay trong không gian ba chiều.

Ví Dụ Phần Tử 3D

Dưới đây là một ví dụ đơn giản về một phần tử hình khối 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

Những điểm khác biệt chính so với các phần tử 2D:

  • type: "3D" xác định đây là một phần tử 3D
  • z, rotationX, rotationY, và scaleZ cho phép các biến đổi 3D
  • geometryType chỉ định hình dạng 3D (hình khối, hình cầu, hình trụ, v.v.)
  • geometryColor đặt màu nền của hình học 3D

Để biết thêm chi tiết về các phần tử 3D, xem tài liệu Phần Tử 3D.

Lược Đồ JSON

JSON yêu cầu của bạn phải tuân thủ nghiêm ngặt lược đồ JSON được định nghĩa trong tài liệu này. Bạn có thể thử nghiệm và tạo JSON yêu cầu tương ứng trong Chillin Video Editor.