Verwenden des Concat-Demuxers (fügen Sie Anfang und / oder Ende Stille hinzu)
Verwenden Sie den Concat-Demuxer, wenn Sie eine Neucodierung des Hauptsegments vermeiden möchten. Diese Methode fügt dem Anfang oder Ende (oder beiden) Stille hinzu.
Verwenden Sie den Filter für die anullsrc- Audioquelle, um das stille Audio zu erstellen. Sie müssen das Format, das Kanallayout und die Abtastrate der Hauptaudiodatei anpassen. Beispiel für die Erstellung einer 5,1-Kanal-, 48000-Hz-Abtastrate, 1 Sekunde stille AC3-Audiodatei (da dies das Format in der Frage war):
ffmpeg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 1 silence.ac3
Erstellen Sie nun eine Textdatei mit dem Namen input.txt
, in der die zu verkettenden Dateien aufgelistet sind:
file 'silent.ac3'
file 'main.ac3'
Wenn Sie die Stille am Ende wünschen, ändern Sie stattdessen einfach die Reihenfolge der Dateien in input.txt
.
Jetzt können Sie die Dateien mit dem concat-Demuxer verketten :
ffmpeg -f concat -i input.txt -codec copy output.ac3
Verwenden des Concat-Filters (am Anfang und / oder Ende Stille hinzufügen)
Verwenden Sie den Concat-Filter, wenn Sie alles in einem Befehl ausführen möchten oder wenn Sie in einem anderen Format als der Eingabe ausgeben möchten (da diese Methode ohnehin neu codiert). Diese Methode fügt dem Anfang oder Ende oder beiden Stille hinzu.
Beispiel für das Hinzufügen von 1 Sekunde Stille zum Beginn eines Stereo-Eingangs mit einer Abtastrate von 44100 Hz:
ffmpeg -f lavfi -t 1 -i anullsrc=channel_layout=stereo:sample_rate=44100 -i audio.oga -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" output.m4a
Das Filtern führt zu einer Neucodierung, der Concat-Demuxer jedoch nicht.
In anullsrc wird empfohlen, das Kanallayout und die Abtastrate des Eingangs anzupassen.
Wenn Sie dem Ende stattdessen Stille hinzufügen möchten, ändern Sie einfach die Reihenfolge der Eingaben für den Concat-Filter : [1:a][0:a]concat=n=2:v=0:a=1
.
Verwenden des Adelay-Filters (fügen Sie dem Anfang Stille hinzu)
Verwenden Sie den Adelay- Audiofilter, wenn Sie alles in einem Befehl ausführen oder in einem anderen Format als der Eingabe ausgeben möchten (da diese Methode ohnehin neu codiert). Dies funktioniert nur, um den Anfang einer Datei zum Schweigen zu bringen.
In diesem Beispiel wird am Anfang eines Stereo-Eingangs 1 Sekunde Stille hinzugefügt:
ffmpeg -i input.flac -af "adelay=1000|1000" output.opus
- Das Filtern führt zu einer Neucodierung, der Concat-Demuxer jedoch nicht.
- Der Wert wird in Millisekunden angegeben. Benutzer neuerer Versionen (aktueller Git-Master oder neuere Versionen als FFmpeg 4.1) können stattdessen
1s
eine Sekunde lang verwenden.
- Jeder Kanal benötigt eine eigene Verzögerung. Beispielsweise würde ein Mono-Eingang verwendet
adelay=1000
, während ein 5.1-Eingang verwendet würde adelay=1000|1000|1000|1000|1000|1000
.
Verwenden des Apad-Filters (fügen Sie am Ende Stille hinzu)
Verwenden Sie den apad- Audiofilter, wenn Sie alles in einem Befehl ausführen möchten oder wenn Sie in einem anderen Format als der Eingabe ausgeben möchten (da diese Methode ohnehin neu codiert). Dies funktioniert nur, um das Ende einer Datei zum Schweigen zu bringen.
In diesem Beispiel wird am Ende 1 Sekunde Stille hinzugefügt:
ffmpeg -i input.wav -af "apad=pad_dur=1" output.m4a
Das Filtern führt zu einer Neucodierung, der Concat-Demuxer jedoch nicht.
Die pad_dur
Option wurde nach der Veröffentlichung von FFmpeg 4.1 hinzugefügt, sodass Sie einen aktuellen Build aus dem Git-Master-Zweig verwenden oder auf FFmpeg 4.2 warten müssen.