O FFmpeg é capaz de lidar com isso. O que você precisa usar é filter_complex
com o encadeamento do filtro. Você pode criar um áudio silencioso com aevalsrc
. Para criar um áudio silencioso de 5 segundos,
aevalsrc=0:d=5
Portanto, o comando a seguir funcionará para você.
ffmpeg -i input_audio_1 -i input_audio_2 -i input_audio_3 -filter_complex "
aevalsrc=0:d=10[s1];
aevalsrc=0:d=15[s2];
aevalsrc=0:d=20[s3];
[s2][1:a]concat=n=2:v=0:a=1[ac1];
[s3][2:a]concat=n=2:v=0:a=1[ac2];
[0:a][s1][ac1][ac2]amix=inputs=4[aout]" -map [aout] output_audio
Aqui eu assumi que cada áudio tem um comprimento de 5 segundos e a recodificação é opcional,
-c:a libmp3lame -ac 2 -b:a 128k
Como amix
causa a sobreposição de áudios, acrescentei um áudio silencioso a cada áudio de entrada. Você também pode tentar amerge
e adelay
onde o próprio documento tem uma explicação clara.
Espero que isso ajude você!