À propos du projet
Null Motion est une application web auto-hébergée pour éditer de longues vidéos en clips verticaux. Elle coupe les pauses, sous-titre les mots et permet de revoir les montages sur une timeline. La fonctionnalité principale est une page d'aperçu qui joue une publicité motion design finie par-dessus tout en montrant les simples brouillons HyperFrames en noir et blanc dont elle est issue en dessous—un brouillon par section (Hook, Reveal, App, End card), tous synchronisés image par image avec le film. Une tête de lecture parcourt les brouillons ; la section active reçoit un contour orange, les autres bouclent. L'export en un clic rend le film et les brouillons en un MP4 à haut débit avec l'audio du film, en utilisant WebCodecs et mp4-muxer, capturant chaque image décodée sans enregistrement en temps réel, donc aucune image n'est perdue.
Le dépôt inclut trois références de démonstration (Infinite Global payments 0:30, SaaS Launch sequence 1:02, Motion study 08 0:03) avec leurs brouillons prêts à jouer. Le démarrage rapide ne nécessite que Node.js 22+ ; aucune dépendance à installer, aucune clé. L'export nécessite Chrome ou Edge. Le flux de travail : scripts/plan-sections.mjs découpe les références en 3 à 8 sections aux vrais changements de scène à l'aide de la détection de scène FFmpeg ; public/drafts.mjs est un petit moteur HyperFrames où chaque brouillon est une scène HTML de 640×360 sur une timeline GSAP en pause, décrite par des beats (texte, logo, téléphone, fenêtre, input, chat, cartes, liste, graphique, cloud). La lecture pilote la timeline de chaque brouillon depuis l'horloge du film.
Vous pouvez apporter vos propres références avec Python, FFmpeg et ffprobe : importez via scripts/import-motionclone.py, puis planifiez les sections. Les médias importés restent locaux dans .local-media/ et public/references/ (ignorés par Git) et ont la priorité sur la démonstration. L'importateur est non destructif, extrait des vignettes, lie les vidéos sources, et le serveur diffuse des plages d'octets afin que la recherche ne charge jamais une vidéo entière en mémoire. Les variables d'environnement optionnelles PORT et HOST modifient l'adresse d'écoute.
Structure du projet : public/demo.html, demo.mjs, demo.css (page d'aperçu et exportateur), public/drafts.mjs (moteur de brouillons), public/scraps.mjs (brouillons faits à la main pour la référence Interface), public/editor.* (éditeur de lancement antérieur à /editor), showcase/ (trois références publiées), scripts/ (import, sections, showcase, waveforms, vérifications), server.js et media.js (serveur statique, streaming média, extraction audio), test/ (tests serveur, média, éditeur). Commandes de développement : npm run dev (redémarrage à chaque changement), npm run check (vérifications des fichiers UI), npm test (node --test).
Remarques : le navigateur n'appelle que la propre origine de ce projet ; la génération, les services de rendu et Premiere ne sont pas connectés. Les brouillons sont écrits, non générés par IA. L'éditeur de lancement antérieur (timeline de référence, découpe, superposition de marque) se trouve à /editor, et la galerie de modèles Null Motion originale est à /index.html. GSAP et mp4-muxer inclus conservent leurs licences (voir THIRD_PARTY_NOTICES.md). Les illustrations de marque et les séquences de référence appartiennent à leurs propriétaires respectifs. Aucune licence open-source à l'échelle du projet n'a été choisie.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.