GUIA

Adicione uma narração de IA a um vídeo com FFmpeg

O FFmpeg coloca qualquer áudio em qualquer vídeo, mas não cria fala natural: o filtro opcional flite soa como robô, e a maioria das builds nem o inclui. O caminho prático tem dois passos: gerar o roteiro com um motor de texto para fala e deixar o FFmpeg pôr esse áudio no vídeo.

Este guia faz o primeiro passo offline com o motor gratuito da SuperClonica e dá os comandos do FFmpeg para o segundo. Rodamos cada comando num vídeo de teste: eles mantêm o vídeo intacto com -c:v copy, então terminam em segundos mesmo com clipes longos.

Gere o roteiro

Instale o motor uma vez com python -m pip install superclonica-cpu; ele baixa o modelo na primeira execução e depois funciona offline. Salve a narração num arquivo de texto e gere:

superclonica --text-file script.txt --voice M3 --lang pt --normalize --output voice.wav

Escolha antes a voz na página dela no catálogo, onde uma frase de 30 a 100 caracteres é gerada grátis e sem conta. Cada voz fala 31 idiomas; troque --lang para gerar o mesmo roteiro em inglês, espanhol ou japonês. Chinês ainda não é suportado.

Troque a faixa de áudio

Para uma gravação de tela ou um clipe sem som, pegue a imagem do vídeo e o som da narração:

ffmpeg -i video.mp4 -i voice.wav -map 0:v -map 1:a -c:v copy -c:a aac voiced.mp4

O vídeo mantém a duração completa; se a voz for mais curta, o resto fica em silêncio. Não use -shortest aqui: com cópia de stream ele pode travar ou cortar a imagem no tamanho da voz.

Ponha a voz sobre a música

Para manter o som original ou a música sob a narração, abaixe e misture os dois:

ffmpeg -i video.mp4 -i voice.wav -filter_complex "[0:a]volume=0.25[music];[music][1:a]amix=inputs=2:duration=first:normalize=0[a]" -map 0:v -map "[a]" -c:v copy -c:a aac voiced.mp4

volume=0.25 deixa a música em um quarto, duration=first mantém a duração do vídeo e normalize=0 impede o amix de cortar a voz pela metade.

Abaixe a música só enquanto a voz fala

Um compressor sidechain abaixa a música quando a voz fala e a traz de volta nas pausas, como faria um editor:

ffmpeg -i video.mp4 -i voice.wav -filter_complex "[1:a]asplit=2[v][key];[0:a][key]sidechaincompress=threshold=0.02:ratio=10:attack=20:release=400[music];[music][v]amix=inputs=2:duration=first:normalize=0[a]" -map 0:v -map "[a]" -c:v copy -c:a aac voiced.mp4

Aumente ratio para uma queda maior e alongue release se a música voltar rápido demais.

Posicione várias falas no tempo exato

Gere cada fala num arquivo próprio, atrase cada uma até o seu momento em milissegundos e misture todas:

ffmpeg -i video.mp4 -i line1.wav -i line2.wav -filter_complex "[1:a]adelay=500:all=1[l1];[2:a]adelay=4000:all=1[l2];[0:a]volume=0.25[music];[music][l1][l2]amix=inputs=3:duration=first:normalize=0[a]" -map 0:v -map "[a]" -c:v copy -c:a aac voiced.mp4

Aqui a primeira fala começa em 0,5 s e a segunda em 4 s. Como cada fala é um arquivo separado, uma mudança no roteiro significa regerar uma fala, não a faixa toda. Se você já tem legendas, nosso guia de SRT para fala monta a faixa com tempos para você.