FFmpeg - Aktivieren Sie alle Videofilteroptionen (-vf) zu einem bestimmten Zeitpunkt im Video

FFmpeg - Aktivieren Sie alle Videofilteroptionen (-vf) zu einem bestimmten Zeitpunkt im Video

Gibt es eine Option, die ich übergeben kann, sodass meine -vfoder -filter_complexOptionen erst zu einem bestimmten Zeitpunkt im Video aktiv werden (z. B. 5 Sekunden nach dem Start eines Videos?) in einem Befehl (ohne zwei verschiedene Videodateien zu verketten)?

Etwas wie das:

ffmpeg -i input.mp4 -vf "eq=contrast=250.0, time=start=5:end=15" output.mp4

Dabei würde der contrastFilter nur nach 5 bis 15 Sekunden im Video erscheinen.

Vielleicht könnte ich zwei separate Videos in einer Zeile zusammenfassen? Für jede Hilfe wäre ich dankbar, danke.

Bearbeiten:Lesen Sie einfach dieTimeline-BearbeitungAbschnitt in den ffmpeg-Dokumenten – aber so wie ich es verstehe, unterstützen das nicht alle Filter. Gibt es eine universelle Methode?

Antwort1

Wenn der Filter die Bearbeitung der Zeitleiste unterstützt, können Sie das Schlüsselwort „enable“ für diesen Filter festlegen, z. B.

ffmpeg -i input.mp4 -vf "eq=contrast=250.0:enable='between(t,5,15)'" output.mp4

Ist dies nicht der Fall, können Sie die Eingabe für eine selektive Verarbeitung mit einer Kombination aus Split-, Trim- und Concat-Filtern segmentieren.

ffmpeg -i input.mp4 -vf "split=3[pre][affected][post];[pre]trim=0:5,setpts=PTS-STARTPTS[pre];[affected]trim=5:15,setpts=PTS-STARTPTS,eq=contrast=250.0[affected];[post]trim=15,setpts=PTS-STARTPTS[post];[pre][affected][post]concat=n=3:v=1:a=0" output.mp4

verwandte Informationen