FFmpeg объединяет аудио и смещает части между собой

FFmpeg объединяет аудио и смещает части между собой

Я понял, как можно объединить несколько аудиофайлов с помощью сложного фильтра, но борюсь со смещением звука в результирующем файле. Скажем, я хочу добавить промежуток в 1 секунду тишины между каждым объединенным файлом. Возможно ли это сделать с помощью FFmpeg?

решение1

Сгенерируйте нулевой аудиопоток и вставьте его с помощью обрезки.

Допустим, у вас есть три аудиофайла и вы хотите сделать между ними интервалы в 1 и 3 секунды соответственно. Тогда вы можете использовать

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -f lavfi -i anullsrc -filter_complex \
       "[3]atrim=duration=1[g1];[3]atrim=duration=3[g2];
        [0][g1][1][g2][2]concat=n=5:v=0:a=1"  out.mp3

Если вам также необходимо обрезать входы,

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -f lavfi -i anullsrc -filter_complex \
       "[0]atrim=duration=20[t0];[1]atrim=duration=120[t1];[2]atrim=duration=45[t2];
        [3]atrim=duration=1[g1];[3]atrim=duration=3[g2];
        [t0][g1][t1][g2][t2]concat=n=5:v=0:a=1"  out.mp3

Связанный контент