Sobre o projeto
Null Motion é uma aplicação web auto-hospedada para editar vídeos longos em clipes verticais. Ela corta pausas, legenda palavras e permite revisar edições em uma linha do tempo. O recurso central é uma página de pré-visualização que reproduz um anúncio de motion graphics finalizado por cima enquanto mostra os rascunhos simples em preto e branco do HyperFrames dos quais ele se originou por baixo—um rascunho por seção (Hook, Reveal, App, End card), todos sincronizados quadro a quadro com o filme. Um playhead percorre os rascunhos; a seção ativa recebe um contorno laranja, as outras ficam em loop. A exportação com um clique renderiza o filme e os rascunhos em um MP4 de alta taxa de bits com o áudio do filme, usando WebCodecs e mp4-muxer, capturando cada quadro decodificado sem gravação em tempo real, para que nenhum quadro seja perdido.
O repositório inclui três referências de demonstração (Infinite Global payments 0:30, SaaS Launch sequence 1:02, Motion study 08 0:03) com seus rascunhos prontos para reproduzir. O início rápido exige apenas Node.js 22+; sem dependências para instalar, sem chaves. A exportação requer Chrome ou Edge. O fluxo de trabalho: scripts/plan-sections.mjs divide as referências em 3–8 seções em mudanças reais de cena usando detecção de cena do FFmpeg; public/drafts.mjs é um pequeno motor HyperFrames em que cada rascunho é uma cena HTML de 640×360 em uma linha do tempo GSAP pausada, descrita por beats (text, logo, phone, window, input, chat, cards, list, chart, cloud). A reprodução conduz a linha do tempo de cada rascunho a partir do relógio do filme.
Você pode trazer suas próprias referências com Python, FFmpeg e ffprobe: importe via scripts/import-motionclone.py e depois planeje as seções. A mídia importada permanece local em .local-media/ e public/references/ (ignoradas pelo Git) e tem precedência sobre a demonstração. O importador é não destrutivo, extrai miniaturas, vincula vídeos de origem, e o servidor transmite intervalos de bytes para que a busca nunca carregue um vídeo inteiro na memória. Variáveis de ambiente opcionais PORT e HOST alteram o endereço de bind.
Estrutura do projeto: public/demo.html, demo.mjs, demo.css (página de pré-visualização e exportador), public/drafts.mjs (motor de rascunhos), public/scraps.mjs (rascunhos feitos à mão para a referência Interface), public/editor.* (editor de lançamento anterior em /editor), showcase/ (três referências publicadas), scripts/ (importação, seções, showcase, waveforms, verificações), server.js e media.js (servidor estático, streaming de mídia, extração de áudio), test/ (testes de servidor, mídia, editor). Comandos de desenvolvimento: npm run dev (reinicia ao mudar), npm run check (verificações de arquivos da UI), npm test (node --test).
Notas: O navegador só chama a própria origem deste projeto; geração, serviços de renderização e Premiere não estão conectados. Os rascunhos são criados manualmente, não gerados por IA. O editor de lançamento anterior (linha do tempo de referência, corte, sobreposição de marca) está em /editor, e a galeria original de templates do Null Motion está em /index.html. O GSAP e o mp4-muxer incluídos mantêm suas licenças (veja THIRD_PARTY_NOTICES.md). Artes de marca e filmagens de referência pertencem aos seus respectivos proprietários. Nenhuma licença de código aberto para todo o projeto foi selecionada.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.