Solicitud de Renderizado

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

Nota: Nuestras solicitudes de renderizado se procesan de manera asíncrona. Después de enviar una solicitud, recibirás inmediatamente una respuesta que contiene un render_id, que se puede usar para consultar el estado y los resultados del renderizado.

PropTipoRequeridoEjemploRango de ValoresDescripción
compositeWidthnumbertrue1920720 - 3840El ancho del compuesto.
compositeHeightnumbertrue1080720 - 3840La altura del compuesto.
fpsnumbertrue3015 - 60La tasa de fotogramas del compuesto.
projectDataobjecttrue--Los datos del proyecto. Pueden ser exportados desde el editor.
cameraobjectfalse--Configuración de cámara opcional para escenas 3D. Controla el modo de proyección y el ángulo de visión.

Nota: El compositeWidth y compositeHeight pueden diferir del width y height especificados en projectData. Sin embargo, la relación de aspecto de compositeWidth a compositeHeight debe permanecer consistente con la relación de aspecto de projectData.width a projectData.height.

Este diseño permite que el mismo proyecto de video se exporte en diferentes resoluciones mientras se mantiene la relación de aspecto original.

Configuración de la Cámara

El objeto camera opcional controla cómo se proyectan los elementos 3D:

  • mode (cadena) - Modo de proyección: "perspective" (predeterminado) o "orthographic". La perspectiva proporciona un acortamiento basado en la profundidad; la ortográfica preserva las líneas paralelas.
  • view (cadena) - Un nombre de vista de cámara preestablecido (por ejemplo, "front", "top", "right", "isometric"). Cuando se especifica, la cámara se posiciona para coincidir con el ángulo preestablecido.

Si no se proporciona camera, se utiliza la vista frontal en perspectiva por defecto.

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

Respuesta de Renderizado Exitoso

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

Respuesta de Error de Renderizado

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

Códigos de Respuesta

Aquí están los códigos devueltos por la API de renderizado asíncrono:

  • 0: Éxito – La solicitud de renderizado asíncrona se envió correctamente.
  • 2001: Error de parámetro – La solicitud contiene parámetros inválidos o faltantes.
  • 2002: Usuario no registrado – El ID de usuario proporcionado no existe.
  • 2003: El usuario no es miembro de la API y no puede utilizar los servicios de renderizado.
  • 2004: Datos del proyecto inválidos – El campo projectData no es un objeto JSON válido.
  • 2005: Saldo de renderizado no suficiente – Saldo insuficiente para proceder con el renderizado.
  • 2006: Falló al convertir los datos del proyecto – No se pudo convertir los datos del proyecto a JSON.
  • 2007: Falló al subir los datos JSON – Ocurrió un error al subir los datos del proyecto.
  • 2008: Falló al convertir los datos de renderizado – La carga útil de la solicitud de renderizado no se pudo serializar.
  • 2009: Falló al enviar la solicitud de renderizado – Ocurrió un error al enviar la solicitud.
  • 2010: Campo de duración faltante – El campo duration es obligatorio pero falta.
  • 2011: Campo de duración inválido – El campo duration está presente pero no en el formato correcto.
  • 2012: El servicio de renderizado falló – El servicio de renderizado encontró un error interno.

Si encuentras un código de error que no está listado, por favor contacta al soporte en [email protected].

Obtener Resultado de Renderizado

Después de enviar una solicitud de renderizado asíncrona, puedes usar el render_id para consultar el estado y el resultado del renderizado.

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

Parámetros de Solicitud

PropTipoRequeridoEjemploRango de ValoresDescripción
render_idnumbertrue100000-El ID de renderizado devuelto de la solicitud de renderizado inicial.

Respuesta de Renderizado Exitoso

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

Estados de Renderizado

El campo state en la respuesta puede tener los siguientes valores:

  • pending: La solicitud de renderizado está en cola y esperando ser procesada
  • rendering: El renderizado se está procesando actualmente
  • success: El renderizado se completó con éxito y el video está listo
  • failed: El renderizado falló debido a un error

Eliminar Archivos de Renderizado

Utiliza este endpoint para eliminar permanentemente el archivo de video renderizado y el JSON del proyecto para una tarea completada.

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

Parámetros de Solicitud

PropTipoRequeridoEjemploRango de ValoresDescripción
render_idnumbertrue100000-El ID de renderizado que deseas limpiar. Solo se pueden eliminar los renders en estado de éxito.

Respuesta de Ejemplo

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • La acción de eliminación es irreversible y elimina tanto el video como los activos JSON.
  • Las solicitudes para renders que aún están pendientes, en renderizado o fallidas serán rechazadas.