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
- A voz primeiro, a montagem depois.
gen-voice.mjsimprime 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. - Depois a música, escolhendo a janela pelo seu arco de energia
(
analyze-music.mjs) e estendendo-a se necessário (loop-music.mjs). - Em seguida os cortes, atados à grade de compassos que a análise imprime.
- 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.
durde 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.basenã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
ffmpegeffprobeno PATH, e Node 20 ou superior. - No Git Bash no Windows:
ffmpegnão suporta padrõesglobedrawtextfalha 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().durationInFramesdentro 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.