
Ich möchte mehrere Änderungen gleichzeitig an Videodateien vornehmen.
Ich muss dem Eingabevideo einen Intro- und Outro-Videoausschnitt hinzufügen. Das bedeutet, dass ich drei Videos zusammenführen muss. Ich muss dem Eingabevideo (dem zweiten Segment) ein Overlay-Bild hinzufügen und nur das. Wie kann ich diese zu einer Zeile kombinieren?
Ich habe das in zwei Schritten geschafft. Zuerst das Overlay:
ffmpeg -i input.mkv -i image.png -filter_complex overlay=main_w-overlay_w-0:0 output_file.mkv
Dann die Zusammenführung:
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
Antwort1
[v1]
Wir können für die Ausgabe temporäre Namen verwenden und diese dann als Eingabe für den Filter overlay=main_w-overlay_w-0:0
nutzen :[v1]
concat
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -i image.png -filter_complex "[1:v][3:v]overlay=main_w-overlay_w-0:0[v1];[0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
- Der folgende Teil wendet die Overlay-Phase an:
[1:v][3:v]overlay=main_w-overlay_w-0:0[v1]
Die überlagerte Ausgabe erhält den temporären Namen[v1]
. [0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat
verwendet[v1]
als Eingabe fürconcat
(anstelle von[1:v:0]
).