Ticket #2150 (closed enhancement: invalid)

Opened 4 months ago

Last modified 4 weeks ago

scale video filter improvement

Reported by: burek Owned by:
Priority: wish Component: avfilter
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Could "scale" video filter be improved in such a way that users could define X:Y as a maximum sized box in which the input video should be scaled, keeping aspect ratio? Something like: "-vf scale=640:480:keep_aspect_ratio"

This would work the same as "-vf scale=640:-1" when the input video has got width > height and "-vf scale=-1:480" when the input video has got height > width.

Right now, without this feature, users have to use either ffprobe or ffmpeg to first determine which dimension is greater and based on that, they would launch either 640:-1 (if width is greater than height) or -1:480 (when height is greater than width). But with this feature, users would be able to do it all with one simple command.

Maybe a simple flag could be added, so that it could be written like this: "-vf scale=640:480:flags=keep-ratio" or something similar.

Change History

comment:1 Changed 3 months ago by richardpl

  • Status changed from new to open
  • Component changed from undetermined to avfilter

comment:2 Changed 4 weeks ago by richardpl

  • Status changed from open to closed
  • Resolution set to invalid

This is already possible, w and h options are expression, no need to use ffprobe to get video size.

comment:3 Changed 4 weeks ago by burek

Can you please provide an example of such command line usage?

Last edited 4 weeks ago by burek (previous) (diff)

comment:4 Changed 4 weeks ago by burek

Here is an example line that can accomplish this already (thanks ubitux) :)

-vf scale="'if(gt(iw,ih),640,-1)':'if(gt(iw,ih),-1,480)'"

NOTE: Pay attention to quotes. They are important.

Note: See TracTickets for help on using tickets.