Am 09.04.22 um 17:59 schrieb Markus Schaaf:
> ffmpeg -i video-in.mp4 -filter:a
> "volume=enable='between(t,5,10)':volume=0" -c:v copy video-out.mp4
Da Du etwas unsicher mit der Kommandozeile und ffmpeg zu sein
scheinst, erkläre ich Dir jedes Detail des Befehls. Dort wo oben
evtl. ein Zeilenumbruch erscheint (je nach Newsreader) ist auf
der Kommandozeile einfach ein Leerzeichen einzugeben. Die
Entertaste wird nur einmal am Ende gedrückt. Also Wort für Wort:
ffmpeg
Das Programm das gestartet wird. Alle nachfolgenden Worte werden
von diesem Programm verarbeitet. Ein paar Zeichen werden
vielleicht vom Kommandozeileninterpreter (der sog. Shell) beachtet.
-i
Die Option 'i' zeigt an, dass das nächste Wort der Name der
Eingabedatei ist.
video-in.mp4
Der Name der Eingabedatei. Wenn der seltsame Zeichen (z.B.
Leerzeichen) enthält, müssen Anführungszeichen oder Backslashes
diese Zeichen entschärfen.
-filter:a
Das nächste Wort ist die Beschreibung eines Filters (in einer
Minisprache, die ffmpeg interpretiert), der einen Teil des
Datenstroms aus der Eingabedatei manipuliert, bevor er an die
Kompressionsfunktion und die Ausgabedatei weitergeleitet wird. In
diesem Fall die Tonspur, angezeigt durch das 'a' (=audio) am
Ende. Du könntest "-filter:a:0" schreiben, um nur die erste
Audiospur zu filtern.
"volume=enable='between(t,5,10)':volume=0"
Die Beschreibung des Filters. Schauen wir uns später genauer an.
Die äußeren Anführungszeichen "" verhindern, dass die Shell die
Zeichen '() und : interpretiert und werden nicht an ffmpeg übergeben.
-c:v
Als nächstes folgt der Name des Videokompressors für die Ausgabe.
copy
Ein spezieller Kompressor, der den (komprimierten) Datenstrom der
Eingabe übernimmt, also unverändert lässt.
video-out.mp4
Der Name der Ausgabedatei. (Regeln siehe Eingabedatei.)
Nun zum Filter:
volume
Der Name des Filters. Dieser hier kann die Lautstärke der
Audiospur ändern.
=
Es folgen Parameter für den Filter "volume"
enable='between(t,5,10)'
Ein universeller Parameter für etliche Filter. Aktiviert den
Filter nur, wenn der Ausdruck nach dem Gleichheitszeichen einen
"wahren" Wert ergibt. In diesem Fall wird die Funktion between
aufgerufen, die effektiv diesen Test durchführt:
5 <= t <= 10
Wobei t der aktuelle Zeitstempel in Sekunden ist.
:
Mehrere Parameter für einen Filter werden durch dieses Zeichen
getrennt. Es folgt der zweite Parameter für den Filter volume.
volume=0
Das Volumen (die Lautstärke) der Audiospur wird mit der Zahl Null
multipliziert. Eine Eins würde die Lautstärke unverändert lassen.
MfG