FFmpeg-Filter zum Drehen des Bildes um einen beliebigen Winkel

7493
Tom

Ich muss ein Zeitraffer-Video von einer Webcam erzeugen, die etwas außerhalb des vertikalen Winkels montiert wurde, und ich muss das Bild um 3 Grad gegen den Uhrzeigersinn drehen. (Die Webcam befindet sich an einem praktisch unzugänglichen Ort. Aufgrund des Wetters kann es zu Fehlern kommen, selbst wenn der Winkel korrigiert wurde. Ich muss ihn in der Software korrigieren.)

Ich habe mit dem Konvertierungswerkzeug von ImageMagick mit der Befehlszeilenoption Erfolg gehabt:

 convert infile.jpg -distort ScaleRotateTranslate 750,50,-3 outfile.jpg 

Aber es ist natürlich schmerzhaft, sich zu bekehren. Ich kann mit FFmpeg-Filtern alles tun, was ich sonst noch tun muss (ein Logo zuschneiden und ein Bild darüber legen), aber es scheint keinen Filter zu geben, der ein Bild um einen beliebigen Winkel drehen kann, nur um 90 oder 180 Grad .

Vielleicht gibt es eine Art generischer linearer Transformationsfilter, der dies tun kann?

Danke für jede Hilfe.

7

1 Antwort auf die Frage

12
mark4o

Kürzlich wurde ein rotateFilter zu FFmpeg hinzugefügt, der eine Drehung um einen beliebigen Winkel ermöglicht. Um es zu verwenden, können Sie die neueste Version von git erstellen oder einen aktuellen Snapshot-Build herunterladen .

Der Winkel wird in Bogenmaß angegeben. positiv ist im uhrzeigersinn und negativ ist gegen den uhrzeigersinn. Wenn Sie einen Grad haben, multiplizieren Sie den Wert mit PI / 180, um ihn in Radiant zu konvertieren. Zum Beispiel 3 ° gegen den Uhrzeigersinn drehen:

ffmpeg -i in.mp4 -vf "rotate=-3*PI/180" out.mp4 

Weitere Informationen und Beispiele finden Sie in der Dokumentation .

This looks promising. Definitely the answer I was looking for. I do wish there was a way to specify the center of rotation. I'll figure out a workaround by doing some translational displacement of the image before and after rotation to achieve the same effect. I'll try to remember to post a followup on what I find. Tom vor 11 Jahren 1
Irony is that the version of ffmpeg I was using, I built from sources on June 11, the same day the new rotate feature was added. If I had just waited a few hours I would have already had it! Tom vor 11 Jahren 1
Es ist komisch, dass es nicht standardmäßig nur gradmäßig ist. Ich habe gerade versucht, "drehen = -4" und habe ein ernstes verrücktes Ergebnis erhalten! FinancialRadDeveloper vor 7 Jahren 0
@FinancialRadDeveloper: Siehe http://math.stackexchange.com/q/1952206 und verknüpfte / verwandte Fragen mark4o vor 7 Jahren 0