2017-02-28 4 views
0

Ich versuche, ein kreisförmiges Film-Overlay mit ffmpeg erstellen. Bisher konnte ich einen Platz Kreis Film Overlay mit dem folgenden Befehl machen:Circular Movie Overlay in FFmpeg

ffmpeg -i bg.mp4 -vf "movie=smaller.mp4[inner];[in][inner] overlay=92:460 [out]" final.mp4

ich so etwas schaffen wollen:

enter image description here

Kann mir jemand helfen?

Vielen Dank!

Antwort

1

Unraffiniertes von How to set circle mask using geq filter angepasst exampled:

imgur must be down

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.
+0

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