FFmpeg filter to rotate image through arbitrary angle

I need to produce timelapse video from a webcam that was mounted at a slightly off-vertical angle, and I need to rotate the image about 3 degrees counter-clockwise. (The webcam is in a virtually inaccessible location and due to weather may get kicked askew eventually even if we did fix the angle. So I need to fix it in software.)

I have had success using ImageMagick's convert tool with the command line option:

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

but of course it is painfully slow to convert. I can do absolutely everything else I need to do (cropping and overlaying a logo on the image) using FFmpeg filters, but there doesn't seem to be a filter that allows rotating an image by an arbitrary angle, only by 90 or 180 degrees.

Perhaps there is some sort of generic linear transformation filter that can do this?

Thanks for any help.


A rotate filter was recently added to FFmpeg, which allows rotation by an arbitrary angle. To use it, you can build the lastest version from git or download a recent snapshot build.

The angle is specified in radians; positive is clockwise and negative is counterclockwise. If you have degrees, multiply by PI/180 to convert to radians. For example, to rotate 3° counterclockwise:

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

Check out the documentation for more details and additional examples.