21 de junho de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Como substituir áudio de um vídeo com ffmpeg

como substituir áudio de um vídeo

O ffmpeg é incrível. Recentemente escrevi sobre como fazer cut, mas escrevi outros artigos curtos também, como o de super resolução no estilo CSI. Esse é “1” procedimento, entre tantos que contam com a criatividade e conhecimento de cada um. Precisei aumentar o volume de um vídeo, mas não queria recompilar porque é demorado e perde qualidade. Então o que fiz foi tão simples que esse artigo já está quase no fim. Vejamos como substituir áudio de um vídeo.

Extrair áudio de vídeo com ffmpeg

Esse é o primeiro passo e provavelmente você já sabe como fazê-lo, mas preciso citar:

ffmpeg -i video.mov audio.wav

Isso extrairá o áudio do video.mov, criando o arquivo audio.wav. O passo seguinte foi aumentar o volume e, se necessário fosse, aplicar um filtro para ruído, efeito, etc.

Edição de áudio com Audacity

O Audacity é um excelente programa de edição de áudio. Nos anos 90 havia um editor profissional muito bom que eu usava para fazer remasterização de discos de vinil, que continha muitos filtros e ajustes importantes, mas me esqueci o nome dele porque há decadas que não uso outra coisa que não seja o Audacity. Arrisco dizer que hoje ele está no mesmo nível que o tal software na época.

O Audacity tem versões para Linux, Mac e Windows. É opensource e tem montanhas de plugins que podem ser instalados à parte, fora o que já vem com ele. Pegue esse editor de áudio aqui, ou caso use Linux, use a ferramenta de gerenciamento de pacotes de sua distribuição. Para as distribuições baseadas em Debian (Ubuntu, Mint etc):

sudo apt-get install audacity

Abra seu arquivo de áudio no Audacity, importando-o. Faça os ajustes e então exporte-o como wav novamente.

Substituir áudio de um vídeo

Agora é fácil. O difícil é decorar esse comando, por isso use esse artigo como referência sempre que precisar, senão vai ter que ficar testando os parâmetros até acertar.

ffmpeg -i video.mov -i audio-ok.wav -c:v copy -map 0:v:0 -map 1:a:0 novo-video.mov

Passamos duas entradas, que é o vídeo original e o áudio modificado, então especificamos o codec de vídeo (-c:v) como cópia (copy), assim não haverá recode. Depois fazemos o map do vídeo (0:v:0) e áudio (1:a:0), informando o nome para o novo arquivo de vídeo.

Enfim, é um artigo curto e simples, mas uma boa dica para quem produz vídeo.