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 qualquer hora em segundos que preferir. Claro, você só precisa gerar o silêncio uma vez, então você pode manter o arquivo ao redor e usá-lo para preencher cada um dos arquivos que você deseja. Você também pode procurar o demuxer de concat - é um pouco mais intensivo no processador, mas você pode achar mais fácil usar um shell script.
Se você quiser fazer isso em um único comando, pode usar o filtro de concatenação - isso exigirá que você recodifique o áudio (pois os filtros são incompatíveis com -codec copy
), portanto a opção acima provavelmente será melhor para voce. 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 qualquer hora (em segundos) desejada. Se você usa este método, você pode encontrar este FFmpeg MP3 guia de codificação útil.