Communitygithub.com

launch-video-kit

Adicione locução, música, legendas ou movimento de câmera a um vídeo feito com Remotion, usando as peças deste repositório. Use quando precisar gerar voz com TTS, escolher ou estender uma faixa de música, mixar voz sobre música, colocar legendas legíveis sobre uma interface ou mover uma câmera virtual sobre uma interface reconstruída em HTML.

O que é launch-video-kit?

O launch-video-kit é um conjunto de seis ferramentas especializadas para a produção de vídeos com Remotion, focando nos aspectos não visuais: áudio (voz e música), legendas e movimentação de câmera. Ele estabelece uma ordem de trabalho rigorosa: primeiro gera-se a voz usando TTS (com `gen-voice.mjs` para obter durações reais), depois escolhe-se e estende-se a música (`analyze-music.mjs` e `loop-music.mjs`), em seguida os cortes são amarrados à grade de compassos, e por fim as legendas são adicionadas apenas para frases que não aparecem na tela. O kit inclui regras práticas que evitam erros comuns, como não misturar frames absolutos com durações de sequência no Remotion, manter o mesmo componente de interface nos dois lados de uma costura, e usar verificação objetiva (via ffmpeg) em vez de opinião subjetiva para validação de áudio e vídeo. É compatível com Node 20+ e requer ffmpeg e ffprobe no PATH, com ressalvas específicas para Windows (Git Bash). O kit não cobre efeitos não-falados como suspiros ou risadas – apenas blips sintéticos via ffmpeg.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/borjaperfra/launch-video-kit/tree/HEAD/.claude/skills/launch-video-kit

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que launch-video-kit faz?

Seis peças para a parte do vídeo que não é o design: áudio, legendas e câmera. O README é a referência (o porquê de cada decisão e os números que a respaldam). Isto é a ordem de trabalho e as regras que é fácil pular.

A ordem importa

  1. A voz primeiro, a montagem depois. gen-voice.mjs imprime a duração real de cada linha em frames. Esses números fixam os tempos de cena. Se montar primeiro, cada tomada real desalinha a montagem e é preciso refazê-la.
  2. Depois a música, escolhendo a janela pelo seu arco de energia (analyze-music.mjs) e estendendo-a se necessário (loop-music.mjs).
  3. Em seguida os cortes, atados à grade de compassos que a análise imprime.
  4. As legendas por último, quando já se sabe quais frases têm rótulo na tela e quais não.

Regras que se pulam sozinhas

  • Um arquivo de voz por linha. Nunca uma tomada longa.
  • Legende apenas o que não está escrito na tela. Se a frase já aparece em um rótulo, legendar duplica o texto no mesmo lugar.
  • dur de uma legenda é tempo de leitura, não a duração da voz. Recorte os intervalos manualmente para que nenhum pise no seguinte nem no rótulo que vier depois.
  • DUCK.base não passa de ~0.85. As faixas de biblioteca vêm a 0 dB e qualquer efeito por cima clipea.
  • Câmera: parada, com movimentos curtos. Nem deriva contínua (distrai) nem cortes secos (saltam). E cada cena começa no enquadramento onde a anterior terminou.
  • Mesma interface nos dois lados de uma costura, mesmo componente. Se uma cena for pintada à mão, vai diferir em um detalhe e esse detalhe aparece de repente ao trocar de bloco.
  • Itere sobre os tempos, não sobre o conteúdo. Um loop sobre o array de conteúdo que indexa um array de tempos mais curto derruba o render assim que um beat é removido.

Verificar em vez de opinar

Um agente não vê o vídeo nem o ouve. Tudo que parece subjetivo tem um número:

# a mixagem, por trechos: a voz sobre música deve medir como a voz sozinha
ffmpeg -hide_banner -ss 27 -t 4 -i out.mp4 -af volumedetect -f null /dev/null

# o pico global deve ficar abaixo de -1 dB
ffmpeg -hide_banner -i out.mp4 -af volumedetect -f null /dev/null

# contact sheet em vez de revisar quadros um por um
ffmpeg -v error -i f_%d.png -vf "scale=560:-1,tile=5x4" -frames:v 1 sheet.png

loop-music.mjs já verifica suas próprias costuras: se alguma não cair em silêncio, ele avisa e é preciso escolher outros dois buracos.

Ambiente

  • São necessários ffmpeg e ffprobe no PATH, e Node 20 ou superior.
  • No Git Bash no Windows: ffmpeg não suporta padrões glob e drawtext falha por falta de fontconfig. Use sequências numeradas. Também não há bc.
  • staticFile() do Remotion não lida bem com espaços nem acentos: renomeie os assets para ASCII.
  • useVideoConfig().durationInFrames dentro de uma <Sequence> é a duração da SEQUÊNCIA, não do vídeo. Não misture com frames absolutos.

O que não pode fazer

Um TTS é fala, não respiração. Suspiros, risadas e efeitos precisam ser gravados. Blips sintéticos saem sim do ffmpeg, há um exemplo no README.

Habilidades Relacionadas