À propos du projet
Astrofox est un programme de motion design conçu pour transformer l'audio en vidéos visuelles. Il est distribué comme projet open source sous licence MIT et peut être exécuté soit comme application web, soit comme application desktop hors ligne.
Flux de travail principal
Les projets sont ouverts et enregistrés sous forme de fichiers .afx locaux. Le README indique que les projets .json et les anciens projets .afx compressés en gzip peuvent toujours être ouverts. L'application est décrite comme une application Next.js côté client, et aucun backend ni service d'authentification n'est requis pour le développement.
Exécution depuis les sources
Le README documente un flux de travail basé sur pnpm : cloner le dépôt, installer les dépendances avec pnpm install, compiler avec pnpm build, et démarrer avec pnpm start. Pour le développement, pnpm dev lance l'application.
Déploiement web
Les commits sont déployés via Vercel à l'aide du script de build pnpm standard. Le README avertit de ne pas modifier ce script pour l'empaquetage desktop.
Desktop (Electron, hors ligne)
Le développement utilise pnpm dev:desktop, qui combine un serveur de développement Next avec un shell Electron. L'empaquetage de production utilise pnpm package, qui effectue un export statique avec BUILD_TARGET=desktop dans out/, puis empaquette electron/ et out/ avec electron-builder. Les installateurs sont écrits dans release/. Des variantes spécifiques à chaque plateforme et non empaquetées sont disponibles via pnpm package:dir, package:mac, package:win et package:linux.
Entrée/sortie de fichiers
Le web et le desktop partagent les mêmes sélecteurs de navigateur, en utilisant la File System Access API avec des solutions de repli par input/download. Le pont Electron est réservé au chrome de fenêtre, aux fichiers temporaires et à l'export ffmpeg, en utilisant des chemins absolus uniquement lorsque nécessaire. Plus de détails sont disponibles dans docs/desktop-capabilities.md.
Export vidéo
Sur le web, l'export utilise le MediaRecorder du navigateur (WebM, ou MP4 lorsque pris en charge). Sur desktop, l'export effectue un rendu hors ligne image par image, puis utilise un binaire ffmpeg intégré pour produire du MP4 (H.264/AAC). Les commandes d'empaquetage téléchargent le binaire de la plateforme et l'incluent sous bin/.
Communauté et support
Le README renvoie à une vidéo de démonstration, au site web du projet, à un chat Discord, à un forum Reddit et à un tracker d'issues GitHub pour les rapports de bugs.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.