Sobre el proyecto

Null Motion es una aplicación web autoalojada para editar vídeos largos y convertirlos en clips verticales. Recorta pausas, subtitula palabras y permite revisar las ediciones en una línea de tiempo. La función principal es una página de vista previa que reproduce un anuncio de motion graphics terminado encima mientras muestra debajo los sencillos borradores HyperFrames en blanco y negro de los que surgió: un borrador por sección (Hook, Reveal, App, End card), todos sincronizados fotograma a fotograma con el vídeo. Un cabezal de reproducción recorre los borradores; la sección activa recibe un contorno naranja y las demás se repiten en bucle. La exportación con un clic renderiza el vídeo y los borradores en un MP4 de alto bitrate con el audio del vídeo, usando WebCodecs y mp4-muxer, capturando cada fotograma decodificado sin grabación en tiempo real para que no se pierda ningún fotograma. El repositorio incluye tres referencias de muestra (Infinite Global payments 0:30, SaaS Launch sequence 1:02, Motion study 08 0:03) con sus borradores listos para reproducir. El inicio rápido solo requiere Node.js 22+; no hay dependencias que instalar ni claves. La exportación necesita Chrome o Edge. El flujo de trabajo: scripts/plan-sections.mjs divide las referencias en 3–8 secciones en cambios de escena reales usando la detección de escenas de FFmpeg; public/drafts.mjs es un pequeño motor HyperFrames donde cada borrador es una escena HTML de 640×360 sobre una línea de tiempo GSAP en pausa, descrita por beats (text, logo, phone, window, input, chat, cards, list, chart, cloud). La reproducción impulsa la línea de tiempo de cada borrador desde el reloj del vídeo. Puedes aportar tus propias referencias con Python, FFmpeg y ffprobe: importa mediante scripts/import-motionclone.py y luego planifica las secciones. Los medios importados permanecen locales en .local-media/ y public/references/ (ignorados por Git) y tienen prioridad sobre las muestras. El importador no es destructivo, extrae miniaturas, enlaza los vídeos de origen, y el servidor transmite rangos de bytes para que la búsqueda nunca cargue un vídeo entero en memoria. Las variables de entorno opcionales PORT y HOST cambian la dirección de enlace. Estructura del proyecto: public/demo.html, demo.mjs, demo.css (página de vista previa y exportador), public/drafts.mjs (motor de borradores), public/scraps.mjs (borradores hechos a mano para la referencia Interface), public/editor.* (editor de lanzamiento anterior en /editor), showcase/ (tres referencias publicadas), scripts/ (importación, secciones, showcase, formas de onda, comprobaciones), server.js y media.js (servidor estático, streaming de medios, extracción de audio), test/ (pruebas de servidor, medios, editor). Comandos de desarrollo: npm run dev (reinicia al cambiar), npm run check (comprobaciones de archivos de UI), npm test (node --test). Notas: El navegador solo llama al propio origen de este proyecto; la generación, los servicios de renderizado y Premiere no están conectados. Los borradores están creados a mano, no generados por IA. El editor de lanzamiento anterior (línea de tiempo de referencia, recorte, superposición de marca) está en /editor, y la galería de plantillas original de Null Motion está en /index.html. GSAP y mp4-muxer incluidos conservan sus licencias (ver THIRD_PARTY_NOTICES.md). Las ilustraciones de marca y el material de referencia pertenecen a sus respectivos propietarios. No se ha seleccionado ninguna licencia de código abierto para todo el proyecto.