FFmpeg verkettet Audio und versetzt Teile untereinander

FFmpeg verkettet Audio und versetzt Teile untereinander

Ich habe herausgefunden, wie ich mehrere Audiodateien mit einem komplexen Filter verketten kann, habe aber Probleme mit dem Versatz des Audios in der Ergebnisdatei. Angenommen, ich möchte zwischen jeder verketteten Datei eine Pause von 1 Sekunde einfügen. Ist das mit FFmpeg möglich?

Antwort1

Generieren Sie einen Null-Audiostream und fügen Sie diesen mit einem Trim ein.

Angenommen, Sie haben drei Audiodateien und möchten zwischen ihnen jeweils eine Pause von 1 und 3 Sekunden einlegen. Dann verwenden Sie

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

Wenn Sie auch die Eingänge trimmen müssen,

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

verwandte Informationen