mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-11 17:26:45 +02:00
Montage (étape 3) : - Nouvelle composition ReelVideo : sous-titres animés mot à mot (3 styles : Impact, Surligné, Épuré), logo, effet de fin et fondu, en React - Le service Python prépare l'image (recadrage, HDR, stabilisation, dernière image figée) et la piste son finale (/prepare-reel) ; Remotion compose - Reels d'images sur les mêmes composants, avec le vrai minutage de la voix - Police Montserrat embarquée (plus de dépendance à Google Fonts) - REEL_RENDERER=ffmpeg conserve le rendu FFmpeg, plus rapide, en secours - Script de pré-bundle réparé (échouait en silence : require en ESM) Interface (étape 4) : - Aperçu en direct avec @remotion/player, identique au rendu final ; la voix testée cale les sous-titres, sinon minutage estimé - Choix du style de sous-titres sur les 4 pages Reel - Vraie progression : étape réelle du rendu, échecs visibles 24 h avec leur cause ; fin de la barre simulée et du faux « publié avec succès » Outillage (étape 5) : - Tests vitest (minutage identique à Python, validation, sécurité) et pytest ; CI GitHub Actions (tsc, tests, build, ruff) - Captures d'écran, out.mp4 et scripts de test retirés de la racine Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Ze4bs7tpF1KGWUk6ZZSZ4
26 lines
902 B
JavaScript
26 lines
902 B
JavaScript
#!/usr/bin/env node
|
|
// Pré-bundle des compositions Remotion pendant le build Docker : le cache
|
|
// Webpack est chaud, le premier rendu d'un utilisateur démarre plus vite.
|
|
// Même configuration que server/services/reels/remotionRenderer.ts.
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { bundle } from "@remotion/bundler";
|
|
|
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
|
|
bundle({
|
|
entryPoint: path.join(root, "client/src/remotion/index.ts"),
|
|
webpackOverride: (config) => ({
|
|
...config,
|
|
resolve: {
|
|
...config.resolve,
|
|
alias: { ...(config.resolve?.alias ?? {}), "@shared": path.join(root, "shared") },
|
|
},
|
|
}),
|
|
})
|
|
.then((location) => console.log("✅ Remotion pre-bundle OK:", location))
|
|
.catch((error) => {
|
|
console.warn("⚠️ Remotion pre-bundle skipped:", error.message);
|
|
process.exit(0);
|
|
});
|