Com o ffmpeg, você pode usar o filtro aevalsrc para gerar silêncio e, em um segundo comando, usar o protocolo concat para combiná-los sem perdas:
ffmpeg -filter_complex aevalsrc=0 -t 10 10SecSilence.mp3
ffmpeg -i "concat:input.mp3|10SecSilence.mp3" -c copy output.mp3
Você pode controlar a duração do silêncio alterando -t 10
para o tempo que desejar em segundos. Obviamente, você só precisa gerar o silêncio uma vez, para manter o arquivo por perto e usá-lo para preencher cada um dos arquivos que desejar. Você também pode procurar o desmuxador concat - é um pouco mais demorado do processador, mas pode ser mais fácil inserir um script de shell.
Se você quiser fazer isso em um único comando, poderá usar o filtro concat - isso exigirá que você recodifique o áudio (como as imagens de filtro são incompatíveis -codec copy
), portanto a opção acima provavelmente será a melhor para você. Mas isso pode ser útil para quem trabalha com PCM bruto, procurando adicionar silêncio ao final antes de codificar o áudio:
ffmpeg -i input.mp3 \
-filter_complex 'aevalsrc=0::d=10[silence];[0:a][silence]concat=n=2:v=0:a=1[out]' \
-map [out] -c:a libmp3lame -q:a 2 output.mp3
Controle a duração do silêncio, alterando d=10
para o tempo que você quiser (em segundos). Se você usar esse método, poderá encontrar este guia de codificação MP3 FFmpeg útil.