Gibt es eine Option, die ich übergeben kann, sodass meine -vf
oder -filter_complex
Optionen 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 contrast
Filter 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