Neyko FX
← Tous les articles← All articles
Workflow & AutomatisationWorkflow & Automation

Automatiser l'export de compositions After Effects

Publié le Published on

This article is currently available in French only. The page chrome is translated, the article body is not yet.

Pour automatiser l'export de compositions After Effects, la méthode la plus directe consiste à utiliser la file de rendu native (Render Queue) combinée à des scripts ExtendScript ou au moteur de rendu en ligne de commande aerender. Ces outils, inclus dans After Effects, permettent de lancer des exports groupés, planifiés ou conditionnels sans intervention manuelle à chaque composition.

Cet article couvre l'ensemble des approches disponibles : constitution d'une file de rendu multi-compositions, scripts ExtendScript pour automatiser l'ajout et le déclenchement des exports, utilisation d'aerender en ligne de commande sur Windows et macOS, intégration dans un pipeline de production, ainsi que les pièges courants à éviter.

Comprendre la file de rendu et ses limites sans automatisation

La Render Queue d'After Effects (accessible via Composition > Add to Render Queue ou le raccourci Ctrl+M sur Windows, Cmd+M sur macOS) est le point de départ de tout export. Vous y ajoutez manuellement chaque composition, vous choisissez un Output Module (codec, format, canaux alpha) et un Output To (chemin de destination), puis vous cliquez sur Render.

Sans automatisation, cette procédure devient rapidement contraignante dès que le projet contient une dizaine de compositions ou que vous devez répéter l'opération chaque jour. Les limites principales sont les suivantes : l'ajout est manuel composition par composition, les chemins de sortie doivent être définis à la main, et After Effects doit rester ouvert et surveillé pendant toute la durée du rendu.

La file de rendu supporte néanmoins un premier niveau d'organisation utile : vous pouvez dupliquer une entrée existante (clic droit > Duplicate), modifier son Output Module ou son chemin, et changer l'état de l'entrée de Queued à Unqueued pour la mettre en attente. Cela permet de préparer un batch avant de lancer le tout en une seule fois. C'est la base sur laquelle les méthodes suivantes s'appuient.

Ajouter automatiquement toutes les compositions à la file de rendu via un script natif

After Effects inclut un moteur de scripts ExtendScript accessible via File > Scripts > Run Script File (ou Edit > Scripts sur certaines versions). Vous pouvez écrire un fichier .jsx qui parcourt toutes les compositions du projet et les ajoute à la Render Queue avec le bon Output Module et le bon chemin de sortie.

Voici un script fonctionnel, à coller dans un fichier texte enregistré avec l'extension .jsx :

```jsx
var proj = app.project;
var rq = app.project.renderQueue;
var outputFolder = "C:/Exports/" ; // Adaptez ce chemin
var templateName = "H.264 - Match Render Settings - 15 Mb/s"; // Nom exact de votre Output Module Template

for (var i = 1; i <= proj.numItems; i++) {
var item = proj.item(i);
if (item instanceof CompItem) {
var rqItem = rq.items.add(item);
rqItem.outputModules[1].applyTemplate(templateName);
rqItem.outputModules[1].file = new File(outputFolder + item.name + ".mp4");
}
}

app.project.renderQueue.render();
```

Pour exécuter ce script : File > Scripts > Run Script File, sélectionnez votre fichier .jsx. After Effects parcourt toutes les CompItem du projet, applique le template d'Output Module que vous avez nommé, définit le chemin de sortie et lance le rendu.

Plusieurs points d'attention : le nom du template doit correspondre exactement à celui que vous avez enregistré dans Edit > Templates > Output Module. Si le template n'existe pas, After Effects lève une erreur. Sur macOS, le chemin de sortie s'écrit "/Users/votre-nom/Exports/". La méthode `rq.render()` bloque l'interface jusqu'à la fin du rendu ; si vous préférez laisser l'utilisateur lancer manuellement, supprimez cette dernière ligne.

Pour placer ce script dans le menu File > Scripts pour un accès rapide, copiez le fichier .jsx dans le dossier Scripts d'After Effects : sur Windows, `C:\Program Files\Adobe\Adobe After Effects [version]\Support Files\Scripts` ; sur macOS, `/Applications/Adobe After Effects [version]/Scripts`. Redémarrez After Effects pour qu'il apparaisse dans le menu.

Utiliser aerender en ligne de commande pour des exports planifiés ou distants

aerender est un exécutable livré avec After Effects qui permet de lancer un rendu depuis le terminal, sans ouvrir l'interface graphique. Il est particulièrement utile pour planifier des exports la nuit, pour les déclencher depuis un autre logiciel ou pour les intégrer dans un pipeline automatisé.

Emplacement de l'exécutable :
- Windows : `C:\Program Files\Adobe\Adobe After Effects [version]\Support Files\aerender.exe`
- macOS : `/Applications/Adobe After Effects [version]/aerender`

Commande de base pour rendre une composition précise :
```
aerender -project "/chemin/vers/projet.aep" -comp "Nom de la composition" -output "/chemin/vers/sortie.mp4" -OMtemplate "H.264 - Match Render Settings - 15 Mb/s"
```

Pour rendre toutes les compositions déjà ajoutées à la file de rendu et enregistrées dans le projet :
```
aerender -project "/chemin/vers/projet.aep"
```

Les arguments les plus utiles :
- `-comp` : spécifie une composition par son nom exact
- `-output` : chemin du fichier de sortie
- `-OMtemplate` : nom du template d'Output Module
- `-RStemplate` : nom du template de Render Settings (par exemple "Best Settings")
- `-s` et `-e` : frame de début et de fin du rendu (utile pour les tests)
- `-close DO_NOT_SAVE_CHANGES` : ferme After Effects sans sauvegarder après le rendu
- `-continueOnMissingFootage` : continue le rendu si des footages sont manquants

Pour planifier un export automatique chaque nuit sur Windows, créez une tâche dans le Planificateur de tâches Windows (Task Scheduler) qui exécute un fichier .bat contenant la commande aerender. Sur macOS, utilisez launchd ou cron : `0 2 * * * /Applications/Adobe After Effects 2024/aerender -project /chemin/projet.aep` lance le rendu à 2h du matin chaque nuit.

Un piège courant : aerender nécessite qu'After Effects soit activé sur la machine et que la licence soit valide. Sur un serveur sans interface, configurez d'abord la licence Adobe en mode machine. Autre point : les polices manquantes ne bloquent pas le rendu mais produisent des substitutions silencieuses ; vérifiez les polices avant de planifier.

Automatiser les chemins de sortie dynamiques avec des expressions de nommage

Un frein fréquent dans l'automatisation est le nommage des fichiers de sortie. Si chaque composition doit produire un fichier dont le nom inclut une date, un numéro de version ou un identifiant client, gérer cela manuellement dans la Render Queue génère des erreurs.

Dans un script ExtendScript, construisez le chemin de sortie de façon dynamique avant de l'assigner à l'Output Module :

```jsx
var today = new Date();
var dateStr = today.getFullYear() + "-" +
("0" + (today.getMonth() + 1)).slice(-2) + "-" +
("0" + today.getDate()).slice(-2);

var outputPath = outputFolder + item.name + "_" + dateStr + ".mp4";
rqItem.outputModules[1].file = new File(outputPath);
```

Cette approche produit des noms de fichiers du type `Intro_Produit_2025-06-10.mp4` sans aucune saisie manuelle. Vous pouvez enrichir la logique avec le numéro de version du projet (`app.project.file.name`), le nom du client extrait d'une convention de nommage, ou un compteur incrémental basé sur les fichiers déjà présents dans le dossier de destination.

Pour les projets multi-versions (v01, v02, v03), un script peut scanner le dossier de sortie et incrémenter automatiquement le suffixe de version :

```jsx
var version = 1;
var candidate = new File(outputFolder + item.name + "_v0" + version + ".mp4");
while (candidate.exists) {
version++;
candidate = new File(outputFolder + item.name + "_v0" + version + ".mp4");
}
rqItem.outputModules[1].file = candidate;
```

Ce type de nommage évite les écrasements accidentels, un problème classique en production quand plusieurs versions d'une même composition coexistent.

Gérer plusieurs formats de sortie en parallèle pour une même composition

En production, une même composition doit souvent être exportée en plusieurs formats simultanément : un MP4 H.264 pour la diffusion web, un MOV ProRes pour la post-production, un GIF ou une séquence PNG pour un usage interactif. La Render Queue permet d'ajouter plusieurs Output Modules à une même entrée, ce qui évite de rendre la composition plusieurs fois.

Dans l'interface : cliquez sur le bouton "+" à droite de la ligne Output Module dans la Render Queue pour ajouter un second module à la même entrée de rendu. Chaque module a son propre format, codec et chemin de sortie. After Effects rend la composition une seule fois et génère tous les formats en sortie.

Dans un script ExtendScript, ajoutez plusieurs Output Modules sur la même entrée de rendu :

```jsx
var rqItem = rq.items.add(item);

// Premier format : MP4
rqItem.outputModules[1].applyTemplate("H.264 - Match Render Settings - 15 Mb/s");
rqItem.outputModules[1].file = new File(outputFolder + item.name + ".mp4");

// Deuxième format : ProRes
rqItem.outputModules.add();
rqItem.outputModules[2].applyTemplate("Apple ProRes 422");
rqItem.outputModules[2].file = new File(outputFolder + item.name + ".mov");
```

La méthode `outputModules.add()` crée un nouveau module en héritant des paramètres par défaut ; appliquez ensuite votre template et définissez le chemin.

Un cas particulier important : si vous exportez une séquence d'images (PNG, EXR), le chemin de sortie doit inclure le token de numérotation. After Effects l'ajoute automatiquement si vous définissez le fichier sans extension ou avec le format correct, mais vérifiez que le dossier de destination existe avant le rendu ; le script doit le créer si nécessaire :

```jsx
var folder = new Folder(outputFolder + item.name + "/");
if (!folder.exists) folder.create();
```

Intégrer l'automatisation dans un pipeline de production et éviter les pièges courants

L'automatisation de l'export prend toute sa valeur quand elle s'insère dans un pipeline existant : dossiers partagés sur un serveur, notifications Slack ou email en fin de rendu, transfert automatique vers un CDN ou une plateforme de review.

Pour déclencher une action après le rendu dans un script ExtendScript, utilisez un callback sur l'état de la file de rendu. After Effects expose l'événement `app.project.renderQueue.queueNotify` mais son support varie selon les versions. Une alternative fiable consiste à surveiller l'état depuis un script externe via aerender, qui retourne un code de sortie : 0 en cas de succès, une valeur non nulle en cas d'erreur. Un fichier .bat ou un script shell peut enchaîner les actions selon ce code :

```bat
aerender.exe -project "C:\projet.aep" -comp "Finale"
if %errorlevel% == 0 (
echo Rendu réussi
xcopy "C:\Exports\*" "\\serveur\livraisons\" /Y
) else (
echo Erreur de rendu
)
```

Sur macOS, la logique équivalente en shell bash utilise `$?` pour tester le code de retour d'aerender.

Les pièges courants à anticiper :

Premier piège : les effets manquants. Si un plugin tiers n'est pas installé sur la machine de rendu, aerender génère une erreur silencieuse ou un rendu incorrect. Maintenez la liste des plugins synchronisée entre postes de création et machines de rendu.

Deuxième piège : les compositions imbriquées non rendues. Si votre composition principale contient des précompositions qui elles-mêmes utilisent des footages dynamiques ou des expressions dépendant du temps, vérifiez que toutes les dépendances sont résolues avant le lancement. Utilisez File > Dependencies > Collect Files pour consolider le projet avant l'export automatisé.

Troisième piège : la mémoire et le cache. Sur des projets longs avec beaucoup de compositions, la mémoire allouée au rendu peut saturer. Ajoutez l'argument `-mem_usage 50 50` dans aerender pour limiter la consommation mémoire (pourcentage réservé au cache image et au cache total).

Quatrième piège : les Output Module Templates manquants. Un template enregistré sur un poste n'est pas transféré avec le fichier .aep. Sur une nouvelle machine, créez les templates manuellement dans Edit > Templates > Output Module avant de lancer le script.

Pour les équipes qui répètent ces opérations sur de nombreux projets et souhaitent une interface graphique plutôt que des scripts à maintenir, des outils comme Neyko FX proposent des automatisations d'export préconfigurées intégrables directement dans After Effects, ce qui réduit le temps de mise en place sur chaque nouveau projet.

ConclusionConclusion

Automatiser l'export de compositions After Effects repose sur trois niveaux complémentaires : la Render Queue pour organiser les sorties, les scripts ExtendScript pour ajouter et configurer les entrées sans intervention manuelle, et aerender pour déclencher les rendus depuis l'extérieur d'After Effects. En combinant ces outils natifs avec un nommage dynamique des fichiers et une intégration dans votre pipeline, vous éliminez la grande majorité des tâches répétitives liées à l'export et réduisez le risque d'erreurs humaines sur des projets à fort volume de compositions.

Questions fréquentesFrequently asked questions

Comment exporter toutes les compositions d'un projet After Effects en une seule fois ?

Utilisez un script ExtendScript qui parcourt tous les items du projet avec une boucle, vérifie si chaque item est une CompItem, et l'ajoute à la Render Queue avec `rq.items.add(item)`. Lancez ensuite `app.project.renderQueue.render()` à la fin du script pour démarrer le rendu groupé.

Quelle est la différence entre la Render Queue et Adobe Media Encoder pour automatiser les exports ?

La Render Queue est intégrée à After Effects et permet l'automatisation via ExtendScript et aerender. Adobe Media Encoder (AME) offre plus de formats de sortie et peut recevoir des compositions via File > Export > Add to Adobe Media Encoder Queue, mais son automatisation par script est plus limitée. Pour un pipeline scripté, la Render Queue avec aerender est plus fiable.

Comment utiliser aerender sans interface graphique sur un serveur ?

Appelez aerender depuis le terminal avec les arguments -project, -comp, -output et -OMtemplate. After Effects doit être installé et activé sur le serveur. Sur un serveur Linux, After Effects n'est pas disponible nativement ; vous devrez utiliser une machine Windows ou macOS, ou une VM avec GPU si les effets l'exigent.

Peut-on planifier un export After Effects pour qu'il se lance automatiquement la nuit ?

Oui. Sur Windows, créez une tâche dans le Planificateur de tâches qui exécute un fichier .bat contenant la commande aerender à l'heure souhaitée. Sur macOS, utilisez launchd ou cron pour appeler aerender à une heure programmée.

Comment nommer automatiquement les fichiers exportés avec la date du jour ?

Dans un script ExtendScript, créez un objet Date avec `new Date()`, formatez l'année, le mois et le jour en chaîne de caractères, puis concaténez cette chaîne au nom de la composition pour construire le chemin de sortie avant de l'assigner à `rqItem.outputModules[1].file`.

Comment exporter une même composition en MP4 et en ProRes simultanément ?

Dans la Render Queue, ajoutez un second Output Module à la même entrée en cliquant sur le bouton "+" à droite du premier module. Dans un script, utilisez `rqItem.outputModules.add()` pour créer un module supplémentaire, puis appliquez-lui un template différent et un chemin de sortie distinct.

Les scripts ExtendScript fonctionnent-ils avec toutes les versions d'After Effects ?

ExtendScript est supporté dans toutes les versions actuelles d'After Effects, y compris les versions CC récentes. Certaines propriétés de l'API ont évolué entre versions ; consultez la documentation After Effects Scripting Guide d'Adobe pour vérifier la compatibilité d'une méthode spécifique avec votre version.

Comment savoir si aerender a terminé avec succès ou si une erreur s'est produite ?

aerender retourne un code de sortie de 0 en cas de succès et une valeur non nulle en cas d'erreur. Dans un script batch Windows, testez `%errorlevel%` après l'appel à aerender. Dans un script shell macOS/Linux, testez `$?` immédiatement après l'appel.

Comment éviter que les fichiers exportés s'écrasent entre eux lors d'exports automatisés répétés ?

Construisez le chemin de sortie en ajoutant un suffixe de date ou de version. Pour les versions incrémentales, faites vérifier au script si le fichier existe déjà avec `new File(chemin).exists` et incrémentez le numéro de version jusqu'à trouver un nom disponible.

Faut-il que les Output Module Templates soient créés sur chaque machine qui utilise le script d'export ?

Oui. Les templates d'Output Module sont stockés localement dans les préférences After Effects et ne suivent pas le fichier .aep. Sur chaque machine utilisée pour le rendu automatisé, créez les templates requis manuellement via Edit > Templates > Output Module, en leur donnant exactement le même nom que celui référencé dans le script.