[FFmpeg-user] Automatic Aspect Ratio Conversion

Stefano Sabatini stefano.sabatini-lala at poste.it
Wed Jul 27 10:42:08 CEST 2011


On date Tuesday 2011-07-26 22:56:21 +1000, Dan Flett encoded:
>  
> 
> -----Original Message-----
> Behalf Of Stefano Sabatini
> Subject: Re: [FFmpeg-user] Automatic Aspect Ratio Conversion
> 
> On date Tuesday 2011-07-26 14:51:39 +1000, Dan Flett encoded:
> > However I found that if the input video is anamorphic (i.e. non-square 
> > pixel), the output is also anamorphic, and the DAR / SAR information 
> > is lost.
> 
> Yes this is a bug which needs to be fixed.
> Currently a=in_w/in_h, which is not what the docs say.
> 
> Possible solutions:
> 1. keep the current semantics for a, and fix the docs 2. change semantics
> for a to match the docs
> 
> I can't say which of 1. or 2. is better, they both have problems, what do
> you suggest to do?
> 
> And of course we'll have to add the sar/dar variables.
> ----------------------------------------
> 
> Under the "Pad" heading, it does list:
> `dar, a'
>     input display aspect ratio, same as iw / ih 
> Did someone just change this? :)

It was me, and I realized soon it was half-broken, as "dar" is not
simply iw/ih.

> Perhaps, to be consistent with the ffmpeg/ffprobe output, sar should be par
> (or par and sar be the same).

Noted.

> I've noticed that when using "scale", using -1 for width or height maintains
> the display aspect ratio, but throws away the sar, leading to possibly
> anamorphic output.  
> 

> I find that in general, I like to start with the "scale=iw*sar:ih" to get
> everything as square pixels, then do my transformations as square pixels,
> then scale it to anamorphic at the end if I need to (and if it's IMX-D10,
> pad 32 lines to the top after that).

The problem of this approach is that it requires a completely
unnecessary scaling, a possibly CPU-intensive operation.

> I also can't find much in the way of documentation for the functions such as
> "max()" - max() itself is fairly obvious, but I'd like to know what other
> functions I can use, and how they work.  I checked out the libavfilter code
> and couldn't find them there either.

Check the "EXPRESSION EVALUATION" section in the manual (incomplete,
patches are welcome).


More information about the ffmpeg-user mailing list