FFmpeg 6.1.2
Since* 2.8
#

Scale (resize) the input video, based on a reference video.

See the scale filter for available options, scale2ref supports the same but uses the reference video instead of the main input as basis. scale2ref also supports the following additional constants for the w and h options:

main_w, main_h

The main input video’s width and height

main_a

The same as main_w / main_h

main_sar

The main input video’s sample aspect ratio

main_dar, mdar

The main input video’s display aspect ratio. Calculated from (main_w / main_h) * main_sar.

main_hsub, main_vsub

The main input video’s horizontal and vertical chroma subsample values. For example for the pixel format "yuv422p" hsub is 2 and vsub is 1.

main_n

The (sequential) number of the main input frame, starting from 0. Only available with eval=frame.

main_t

The presentation timestamp of the main input frame, expressed as a number of seconds. Only available with eval=frame.

main_pos

The position (byte offset) of the frame in the main input stream, or NaN if this information is unavailable and/or meaningless (for example in case of synthetic video). Only available with eval=frame.

#

Examples

  • Scale a subtitle stream (b) to match the main video (a) in size before overlaying

    'scale2ref[b][a];[a][b]overlay'
    
  • Scale a logo to 1/10th the height of a video, while preserving its display aspect ratio.

    [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
#

Commands

This filter supports the following commands:

width, w, height, h

Set the output video dimension expression. The command accepts the same syntax of the corresponding option.

If the specified expression is not valid, it is kept at its current value.