FFmpeg verkettet Audio- und Offset-Teile untereinander

1330
layabout

Ich habe herausgefunden, wie ich mehrere Audiodateien mit einem komplexen Filter verketten kann, aber mit dem Versetzen von Audio in der Ergebnisdatei zu kämpfen habe. Angenommen, ich möchte eine Pause von 1 Sekunde zwischen den einzelnen verketteten Dateien hinzufügen. Ist es mit FFmpeg möglich?

2

1 Antwort auf die Frage

4
Gyan

Erzeugen Sie einen Null-Audio-Stream und fügen Sie diesen mit einem Beschnitt ein.

Nehmen wir an, Sie haben drei Audiodateien und wollen Lücken von 1 bzw. 3 Sekunden, dann würden Sie sie verwenden

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 
Was ist, wenn ich die Dauer der Eingaben vor dem Concat und dem Trim begrenzen möchte? layabout vor 7 Jahren 0
Siehe neuer Befehl. Gyan vor 7 Jahren 0
Danke für die Hilfe! Könnten Sie mir bitte zeigen, wo ich über die Eingabeetiketten lesen kann? Ich verstehe die Bedeutung aller Werte in Klammern nicht ganz. Warum auch n = 5? 3 Eingabedateien und anullsrc aber woher kam 5.? layabout vor 7 Jahren 0
Siehe https://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1 Gyan vor 7 Jahren 0
5 bezieht sich auf die Gesamtzahl der Eingangspads. Die anullsrc wird zweimal gefüttert. Gyan vor 7 Jahren 0