Unraffiniertes von How to set circle mask using geq filter angepasst exampled:
ffmpeg -i input.mp4 -filter_complex \
"trim=end_frame=1,geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),80*80),255,0)':128:128,loop=-1:1,setpts=N/FRAME_RATE/TB[alf]; \
[0:v][alf]alphamerge,scale=iw/2:-1[fg]; \
[0:v][fg]overlay=(W-w)/2:H-(h/2)-20-40:shortest=1" \
output.mp4
Sie keine Besonderheiten lieferten oder Dateiinformationen so habe ich einige Annahmen:
- bearbeiten
80*80
Kreisradius erhöhen .
- Kreisquelle ist in der Mitte zentriert.
- Die Überlagerung wird horizontal zentriert. Vertikal wird es 20 Pixel von der Unterseite von
bg.mp4
gesetzt.
- Audio wurde nicht erwähnt, also habe ich nichts dafür hinzugefügt.
- Kein weißer Rand um den Kreis.
- "Undefiniert", weil ich keine Zeit mehr hatte, um dies zu beenden, aber es sollte wahrscheinlich so funktionieren wie es ist. Ich werde es zu einem späteren Zeitpunkt wieder besuchen können.
Vielen Dank! Ich habe einige zusätzliche Fragen. Kannst du den Befehl etwas erklären? Ich bin neu bei FFmpeg. Ich sehe, Sie verwenden 1 Eingabedatei, ist es möglich, eine andere Eingabedatei für den Kreis zu verwenden? Ich möchte, dass das resultierende Video den Ton beider Videos enthält. Was passiert, wenn das Hintergrundvideo kürzer als das Kreisvideo ist? Wird der Kreis weiterspielen? Das Kreisvideo ist ein quadratisches Video. Daher möchte ich, dass der Kreis den Rand des quadratischen Videos berührt, um so viel wie möglich vom ursprünglichen Video beizubehalten. – Thomas