Es ist möglich, zeitliche und räumliche Unschärfen auf ein Segment / einen Abschnitt anzuwenden - vorausgesetzt, der Bereich, den Sie verwischen möchten, ist ein statischer Ort.
Ursprüngliches schwarzes Laborwelpenbild.
Maskenbild verwenden
Graustufen-PNG-Maskenbild und daraus resultierendes unscharfes Bild.
Sie können ein Graustufenmaskenbild erstellen, um den zu verwischenden Bereich anzugeben. Zur Erleichterung der Verwendung sollte es die gleiche Größe haben wie das Bild oder Video, das Sie verwischen möchten.
Beispiel mit Alphamerge , Boxblur und Overlay :
ffmpeg -i video.mp4 -i mask.png -filter_complex "[0:v][1:v]alphamerge,boxblur=10[alf];[0:v][alf]overlay[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart maskedblur.mp4
Der weiße Bereich ist der Ort, an dem die Unschärfe auftritt. Dies kann jedoch leicht mit dem Negativfilter umgekehrt werden. Beispiel:[1:v]negate[mask];[0:v][mask]alphamerge,boxblur=10[alf]...
Sie können den Geq- Filter verwenden, um eine Maske wie einen Farbverlauf zu generieren.
Bereich verwischen (ohne Maske)
ffmpeg -i derpdog.mp4 -filter_complex \
"[0:v]crop=200:200:60:30,boxblur=10[fg]; \
[0:v][fg]overlay=60:30[v]" \
-map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart derpdogblur.mp4
Hinweis: Die x- und y-Versatznummern in der Überlagerung ( 60
und 30
in diesem Beispiel) müssen mit den Zuschnittsversätzen übereinstimmen.
Was dieses Beispiel bewirkt:
- Beschneiden Sie die Kopie auf die Größe des zu unscharfen Bereichs. In diesem Beispiel: Ein 200 x 200 Pixel großes Feld, das 60 Pixel rechts (
x
Achse) und 30 Pixel unten ( y
Achse) von der oberen linken Ecke entfernt ist.
- Verwischen Sie den zugeschnittenen Bereich.
- Überlagern Sie den unscharfen Bereich mit denselben
x
und y
Parametern aus dem Zuschneidefilter .
Mehrere Unschärfen über bestimmte Bereiche (ohne Maske)
Unscharfe Bereiche oben links, nahe der Mitte und unten.
"[0:v]crop=50:50:20:10,boxblur=10[b0]; \
[0:v]crop=iw:30:(iw-ow)/2:ih-oh,boxblur=10[b1]; \
[0:v]crop=100:100:120:80,boxblur=10[b2]; \
[0:v][b0]overlay=20:10[ovr0]; \
[ovr0][b1]overlay=(W-w)/2:H-h[ovr1]; \
[ovr1][b2]overlay=120:80"
Bestimmter Bereich nicht unscharf (ohne Maske)
"[0:v]boxblur=10[bg];[0:v]crop=200:200:60:30[fg];[bg][fg]overlay=60:30"
Zusätzliches Zeug
Unrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
Für den Fall, dass man die scharfe Kante der Unschärfe nicht mag, habe ich ein Skript erstellt, das verschiedene Stufen der Unschärfe überlagert, sodass die Kante nicht scharf ist und so aussieht:
An Stelle von:
Es ist ein Python-Skript:
Sie können die Parameter in der letzten und vorletzten Zeile ändern. Die letzten beiden Parameter zwischen den Anführungszeichen sind der Pfad zu Ihrem Video und das Ausgabevideo (vorausgesetzt, sie befinden sich im Arbeitsverzeichnis). In der vorletzten Zeile:
Invalid chroma radius value 21, must be >= 0 and <= 20
Wenn Sie es ausführen, sollten Sie eine Ausgabe wie die folgende erhalten (es wird in eine Datei geschrieben, die ausgeführt und auf der Ausgabe gedruckt werden kann, die kopiert und ausgeführt werden kann):
quelle