렌더 요청

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 장면을 위한 선택적 카메라 구성입니다. 투영 모드와 시야각을 제어합니다.

참고: compositeWidthcompositeHeightprojectData에 지정된 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 자산 모두를 제거합니다.
  • 아직 대기 중이거나 렌더링 중이거나 실패한 렌더에 대한 요청은 거부됩니다.