

For example, this command line:įfmpeg -i input.jpg -vf scale=320:-1 output_320.png If we'd like to keep the aspect ratio, we need to specify only one component, either width or height, and set the other component to -1. If you need to simply resize your video to a specific size (e.g 320×240), you can use the scale filter in its most basic form:įfmpeg -i input.avi -vf scale=320:240 output.aviįfmpeg -i input.jpg -vf scale=320:240 output_320x240.pngĪs you can see, the aspect ratio is not the same as in the original image, so the image appears stretched. In all the examples, the starting image (input.jpg) will be this one (535×346 pixels):

For those -vf scale=out_range=pc should be used. Yet for x265 the workaround was implemented, but not for jpeg2000 and AV1.

When going from BGR (not RGB) to yuv420p the conversion is broken (off-by-one).The correct syntax for SAR=2:3 is setsar=2/3, or setsar=1 for the above example. In this special case it accidentally gives the correct result SAR=1:1, but for example setsar=2:3 would give the wrong result SAR=2:1. The above example is highly misleading because setsar=1:1 is equivalent to setsar=r=1:max=1. For example:įfmpeg -i input.mp4 -vf scale=320:240,setsar=1:1 output.mp4 You have to manually set the SAR value to 1:1 to make the players display it in the way you want. In some cases, FFmpeg will set the Sample Aspect Ratio to compensate for the ratio change.To achieve the same results for complex filter chains, you have to explicitly set the scaling algorithm via the flags=bicubic option. When using -filter_complex/ -lavfi, the default scaling flags are not applied, so the default algorithm is not bicubic, but bilinear.
