Demande de Rendu

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

Remarque : Nos demandes de rendu sont traitées de manière asynchrone. Après avoir soumis une demande, vous recevrez immédiatement une réponse contenant un render_id, qui peut être utilisé pour interroger l'état et les résultats du rendu.

PropriétéTypeRequisExemplePlage de valeursDescription
compositeWidthnumbertrue1920720 - 3840La largeur du composite.
compositeHeightnumbertrue1080720 - 3840La hauteur du composite.
fpsnumbertrue3015 - 60Le taux de rafraîchissement du composite.
projectDataobjecttrue--Les données du projet. Peut être exporté depuis l'éditeur.
cameraobjectfalse--Configuration de caméra optionnelle pour les scènes 3D. Contrôle le mode de projection et l'angle de vue.

Remarque : La compositeWidth et la compositeHeight peuvent différer de la width et de la height spécifiées dans projectData. Cependant, le rapport d'aspect de compositeWidth à compositeHeight doit rester cohérent avec le rapport d'aspect de projectData.width à projectData.height.

Ce design permet d'exporter le même projet vidéo dans différentes résolutions tout en maintenant le rapport d'aspect d'origine.

Configuration de la Caméra

L'objet camera optionnel contrôle comment les éléments 3D sont projetés :

  • mode (string) - Mode de projection : "perspective" (par défaut) ou "orthographic". La perspective fournit un raccourci basé sur la profondeur ; l'orthographique préserve les lignes parallèles.
  • view (string) - Un nom de vue de caméra prédéfini (par exemple, "front", "top", "right", "isometric"). Lorsqu'il est spécifié, la caméra est positionnée pour correspondre à l'angle prédéfini.

Si aucune camera n'est fournie, la vue frontale par défaut en perspective est utilisée.

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

Réponse de Rendu Réussie

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

Réponse d'Erreur de Rendu

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

Codes de Réponse

Voici les codes retournés par l'API de rendu asynchrone :

  • 0 : Succès – La demande de rendu asynchrone a été soumise avec succès.
  • 2001 : Erreur de paramètre – La demande contient des paramètres invalides ou manquants.
  • 2002 : Utilisateur non enregistré – L'ID utilisateur fourni n'existe pas.
  • 2003 : L'utilisateur n'est pas membre de l'API et ne peut pas utiliser les services de rendu.
  • 2004 : Données de projet invalides – Le champ projectData n'est pas un objet JSON valide.
  • 2005 : Solde de rendu insuffisant – Solde insuffisant pour procéder au rendu.
  • 2006 : Échec de la conversion des données de projet – Impossible de convertir les données de projet en JSON.
  • 2007 : Échec du téléchargement des données JSON – Une erreur est survenue lors du téléchargement des données de projet.
  • 2008 : Échec de la conversion des données de rendu – La charge utile de la demande de rendu n'a pas pu être sérialisée.
  • 2009 : Échec de l'envoi de la demande de rendu – Une erreur est survenue lors de l'envoi de la demande.
  • 2010 : Champ de durée manquant – Le champ duration est requis mais manquant.
  • 2011 : Champ de durée invalide – Le champ duration est présent mais pas au format correct.
  • 2012 : Échec du service de rendu – Le service de rendu a rencontré une erreur interne.

Si vous rencontrez un code d'erreur non répertorié, veuillez contacter le support à [email protected].

Obtenir le Résultat du Rendu

Après avoir soumis une demande de rendu asynchrone, vous pouvez utiliser le render_id pour interroger l'état et le résultat du rendu.

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

Paramètres de Demande

PropriétéTypeRequisExemplePlage de valeursDescription
render_idnumbertrue100000-L'ID de rendu retourné par la demande de rendu initiale.

Réponse de Rendu Réussie

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

États de Rendu

Le champ state dans la réponse peut avoir les valeurs suivantes :

  • pending : La demande de rendu est en attente et attend d'être traitée
  • rendering : Le rendu est actuellement en cours de traitement
  • success : Le rendu a été complété avec succès et la vidéo est prête
  • failed : Le rendu a échoué en raison d'une erreur

Supprimer les Fichiers de Rendu

Utilisez ce point de terminaison pour supprimer définitivement le fichier vidéo rendu et le JSON du projet pour une tâche terminée.

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

Paramètres de Demande

PropriétéTypeRequisExemplePlage de valeursDescription
render_idnumbertrue100000-L'ID de rendu que vous souhaitez nettoyer. Seuls les rendus dans l'état de succès peuvent être supprimés.

Réponse d'Exemple

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • L'action de suppression est irréversible et supprime à la fois la vidéo et les actifs JSON.
  • Les demandes de rendus qui sont encore en attente, en cours de rendu ou échouées seront rejetées.