Существует несколько методов.
adelay, amix
Используйте фильтры adelay и amix :
ffmpeg -i audio1.mp3 -i audio2.mp3 -filter_complex "[0]adelay=4s:all=1[0a];[1]adelay=30s:all=1[1a];[0a][1a]amix=inputs=2[a]" -map "[a]" output.mp3
Обратите внимание, что фильтр amix уменьшит громкость на выходе, чтобы предотвратить ограничение. При необходимости используйте фильтры dynaudnorm или Volume.
adelay, фильтр concat
Или фильтры adelay и concat . Предполагается, что audio1.mp4
имеет длину 10 секунд, и оба входа имеют одинаковую частоту дискретизации и разводку каналов:
ffmpeg -i audio1.mp3 -i audio2.mp3 -filter_complex "[0]adelay=4s:all=1[0a];[1]adelay=16s:all=1[1a];[0a][1a]concat=n=2:v=0:a=1[a]" -map "[a]" output.mp3
anullsr c, concat demuxer
Или генерировать файлы без вывода сообщений в качестве разделителей с фильтром anullsr c :
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -t 4 4.mp3
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -t 16 16.mp3
Создать файл input.txt:
file '4.mp3'
file 'audio1.mp3'
file '16.mp3'
file 'audio2.mp3'
Затем использовать демультиплексор concat :
ffmpeg -f concat -i input.txt -c copy output.mp3