FFmpeg - Wie erstelle ich eine kreisförmige Videoüberlagerung?

566
Gew

Ich helfe meiner Tochter und ihren Freunden mit ihrem Youtube VLOG-Kanal, und jetzt möchten sie Screen Casts machen und ein kleineres kreisförmiges Gesicht in Großaufnahme (z. B. in der oberen rechten oder linken Ecke) zeigen, wo sie sie sprechen sehen können über die eigentliche Sache sie sind Screencasting. Ich habe FFmpeg seit fast zehn Jahren für etwas grundlegenderes benutzt, aber ich kann sagen, dass dies eher eine komplexe Aufgabe ist.

Ich bin dank Google auf einen anderen Frage-Thread gestoßen ( https://stackoverflow.com/questions/42518592/circular-movie-overlay-in-ffmpeg ). Ich glaube, er versucht mehr oder weniger dasselbe zu erreichen, abgesehen von seiner Verwendung die gleiche Quelle sowohl für das kleine kreisförmige Overlay als auch für das "Haupt" -Video, wobei ich separate Eingänge verwenden möchte; Verwenden Sie "main.mkv" und "facecloseup.mkv" als Befehlszeile, wenn jemand diese heikle Aufgabe lösen möchte! ;)

Der Einfachheit halber habe ich wahrscheinlich bereits die beiden Quellen mit optimierter Auflösung, beispielsweise 1080p für main.mkv und 240x240 oder so ähnlich für facecloseup.mkv, und dann brauche ich nur die mathematische Syntax, um einen Center-Circle aus Facecloseup herauszuschneiden .mkv und in eine Ecke, nehmen Sie der Einfachheit halber oben links.

Prost!

2

1 Antwort auf die Frage

1
Gyan

Benutzen

ffmpeg -i main.mkv -i facecloseup.mkv -filter_complex "[1]trim=end_frame=1, geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),pow(min(W/2,H/2),2)),255,0)':128:128, loop=-1:1,setpts=N/FRAME_RATE/TB[mask]; [1][mask]alphamerge[cutout]; [0][cutout]overlay=x=W-w:y=0[v]; [0][1]amix=2[a]" -map "[v]" -map "[a]" out.mp4 

Das Kommentarvideo wird zum Erstellen einer kreisförmigen Graustufenmaske verwendet, die in der Mitte des Videos zentriert ist. Es wird dann als Alphakanal mit der Quelle zusammengeführt. Es ist in der oberen rechten Ecke eingebettet. Die Audios werden gemischt. Entfernen Sie diesen letzten Filter und -map "[a]"das Hauptvideo enthält kein Audio.

Wow, vielen Dank für eine schnelle Antwort! Das war genau das, wonach ich gesucht hatte. Ich hätte es wahrscheinlich nie selbst herausgefunden, da sich meine mathematischen Fähigkeiten höchstens auf einer Grundrechenebene befinden. Ich bin überzeugt, dass dieser Beitrag auch anderen helfen wird. Ich habe fast zwei Stunden im Internet nach vorhandener Q / A-Suche gesucht, jedoch ohne Erfolg. Der Link, den ich gepostet habe, war der Suche nach einer Antwort am nächsten. Oh, eine kleine Zusatzfrage, sagen wir, ich wollte stattdessen die "Blase" in der oberen linken Ecke. Wäre das viel Mühe zu erreichen? Nochmals vielen Dank! Dies wird mir bei der Automatisierung sehr helfen. Gew vor 6 Jahren 0
In dem Überlagerungsfilter stellen die Werte für 'x' und 'y' dar, wo sich die obere linke Ecke des überlagerten Videos (Ausschnitt) in Bezug auf die obere linke Ecke des Basisbilds (Hauptbild) befindet. Hier ist x "Ww", dh bei "full width of main - full width of cutout", wodurch die beiden Eingänge horizontal nach rechts ausgerichtet werden. Ändern Sie den Wert auf 0, um den Wert links auszurichten Gyan vor 6 Jahren 0