Ich habe lange Videodateien, die ich gerne auf einen genauen Zeitstempel schneiden möchte, und ich muss auch ein Wasserzeichen hinzufügen. Bevor ich ein Wasserzeichen hinzufügen musste, habe ich diesen Befehl verwendet und er hat großartig funktioniert:
ffmpeg -ss 00:00:20.480 -i "INPUT.mp4" -ss 00:00:10.000 -t 00:11:39.960 -c:a copy -c:v libx264 -filter:v "scale=1280:-1" -preset slow -crf 25 "OUTPUT.mp4"
Aber jetzt muss ich ein Wasserzeichen hinzufügen. Ich habe versucht, einen Überlagerungsfilter (der eine zweite Eingabedatei verwendet) zu verwenden. Ich verwende ein Apng-Dateiformat, um Transparenz zu erreichen:
ffmpeg -ss 00:01:00.680 -i "INPUT.mp4" -ss 00:00:10.000 -t 00:11:39.759 -i overlay.apng -c:a copy -c:v libx264 -filter_complex "crop=in_w-8:in_h-8,overlay,scale=1280:-1" -preset slow -crf 25 "OUTPUT.mp4"
Leider ignoriert ffmpeg in diesem Fall den zweiten -ss-Schalter. Ohne diesen Schalter gibt es keinen präzisen Schnitt. Selbst wenn ich dem ersten -ss-Schalter einen richtigen Zeitstempel gebe, würde es beim Abspielen der ersten Sekunden einer Videodatei zu einem Frieren der Bilder kommen.
Ich kam mit einer hässlichen schnellen Lösung, indem ich zwei ffmpeg-Prozesse wie folgt verkettete:
ffmpeg -ss 00:00:15.640 -i "INPUT.mp4" -ss 00:00:10.000 -t 00:11:39.800 -c:a copy -c:v huffyuv -f matroska - | ffmpeg -i pipe:0 -i overlay.apng -filter_complex "crop=in_w-8:in_h-8,overlay=y=main_h-overlay_h:x=0,scale=1280:-1" -c:a copy -c:v libx264 -preset slow -crf 25 "OUTPUT.mp4"
In diesem Fall sinkt die gesamte Kodierungsleistung um 30%.
Mein Ziel ist das Ausschneiden und Hinzufügen von Wasserzeichen in einem einzigen Befehl. Bitte helfen