# FFmpeg Scaler Documentation

# Table of Contents

- 1 Description
- 2 Scaler Options
- 3 See Also
- 4 Authors

# 1 Description

The FFmpeg rescaler provides a high-level interface to the libswscale library image conversion utilities. In particular it allows one to perform image rescaling and pixel format conversion.

# 2 Scaler Options

The video scaler supports the following named options.

Options may be set by specifying -option value in the FFmpeg tools, with a few API-only exceptions noted below. For programmatic use, they can be set explicitly in the `SwsContext` options or through the ‘`libavutil/opt.h`’ API.

‘`scaler, scaler_sub`’

  Choose the scaling algorithm to use. Default value is ‘`auto`’ for both. It accepts the following values:

  ‘`auto`’

    Aumotic choice. For ‘`scaler_sub`’, this means the same algorithm as ‘`scaler`’. For ‘`scaler`’, this defaults to the scaler flag selected by ‘`sws_flags`’.

  ‘`bilinear`’

    Bilinear filter. (AKA triangle filter)

  ‘`bicubic`’

    2-tap cubic BC-spline (AKA Mitchell-Netravali spline). The B and C parameters can be configured by setting `param0` and `param1`, defaulting to 0.0 and 0.6 respectively.

  ‘`point, neighbor`’

    Point sampling (AKA nearest neighbor).

  ‘`area`’

    Area averaging. Equivalent to ‘`bilinear`’ for upscaling.

  ‘`gaussian`’

    2-tap Gaussian filter approximation. The sharpness parameter can be configured by setting `param0`, defaulting to 3.0.

  ‘`sinc`’

    Unwindowed sinc filter.

  ‘`lanczos`’

    Lanczos resampling (sinc windowed sinc). The number of filter taps can be configured by setting `param0`, defaulting to 3.

  ‘`spline`’

    Unwindowed natural bicubic spline.

‘`sws_flags`’

  Set the scaler flags. This is also used to set the scaling algorithm, though this usage is deprecated in favor of setting ‘`scaler`’. Only a single algorithm may be selected. Default value is ‘`bicubic`’.

  It accepts the following values:

  ‘`fast_bilinear`’

    Select fast bilinear scaling algorithm. (Deprecated)

  ‘`bilinear`’

    Select bilinear scaling algorithm. (Deprecated)

  ‘`bicubic`’

    Select bicubic scaling algorithm. (Deprecated)

  ‘`experimental`’

    Select experimental scaling algorithm. (Deprecated)

  ‘`neighbor`’

    Select nearest neighbor rescaling algorithm. (Deprecated)

  ‘`area`’

    Select averaging area rescaling algorithm. (Deprecated)

  ‘`bicublin`’

    Select bicubic scaling algorithm for the luma component, bilinear for chroma components. (Deprecated)

  ‘`gauss`’

    Select Gaussian rescaling algorithm. (Deprecated)

  ‘`sinc`’

    Select sinc rescaling algorithm. (Deprecated)

  ‘`lanczos`’

    Select Lanczos rescaling algorithm. The default width (alpha) is 3 and can be changed by setting `param0`. (Deprecated)

  ‘`spline`’

    Select natural bicubic spline rescaling algorithm. (Deprecated)

  ‘`print_info`’

    Enable printing/debug logging.

  ‘`accurate_rnd`’

    Enable accurate rounding.

  ‘`full_chroma_int`’

    Enable full chroma interpolation.

  ‘`full_chroma_inp`’

    Select full chroma input.

  ‘`bitexact`’

    Enable bitexact output.

  ‘`unstable`’

    Allow the use of experimental new code. May subtly affect the output or even produce wrong results. For testing only.

‘`srcw (API only)`’

  Set source width.

‘`srch (API only)`’

  Set source height.

‘`dstw (API only)`’

  Set destination width.

‘`dsth (API only)`’

  Set destination height.

‘`src_format (API only)`’

  Set source pixel format (must be expressed as an integer).

‘`dst_format (API only)`’

  Set destination pixel format (must be expressed as an integer).

‘`src_range (boolean)`’

  If value is set to `1`, indicates source is full range. Default value is `0`, which indicates source is limited range.

‘`dst_range (boolean)`’

  If value is set to `1`, enable full range for destination. Default value is `0`, which enables limited range.

‘`gamma (boolean)`’

  If value is set to `1`, enable gamma correct scaling. Default value is `0`.

‘`param0, param1`’

  Set scaling algorithm parameters. The specified values are specific of some scaling algorithms and ignored by others. The specified values are floating point number values.

‘`sws_dither`’

  Set the dithering algorithm. Accepts one of the following values. Default value is ‘`auto`’.

  ‘`auto`’

    automatic choice

  ‘`none`’

    no dithering

  ‘`bayer`’

    bayer dither

  ‘`ed`’

    error diffusion dither

  ‘`a_dither`’

    arithmetic dither, based using addition

  ‘`x_dither`’

    arithmetic dither, based using xor (more random/less apparent patterning that a_dither).

‘`alphablend`’

  Set the alpha blending to use when the input has alpha but the output does not. Default value is ‘`none`’.

  ‘`uniform_color`’

    Blend onto a uniform background color

  ‘`checkerboard`’

    Blend onto a checkerboard

  ‘`none`’

    No blending

‘`sws_backends`’

  Set the allowed swscale backends. This is a flags option, so multiple backends may be combined.

  ‘`auto`’

    Automatic selection. Equal to either ‘`stable`’ or ‘`all`’ depending on whether or not the ‘`unstable`’ flag is set. This is the default value.

  ‘`stable`’

    All stable backends.

  ‘`unstable`’

    All unstable backends.

  ‘`all`’

    All available backends.

  ‘`legacy`’

    Legacy swscale code.

  ‘`c`’

    Template-based reference code.

  ‘`memcpy`’

    Fast path using libc `memcpy`.

  ‘`x86`’

    x86 SIMD kernels.

  ‘`aarch64`’

    AArch64 NEON kernels.

  ‘`spirv`’

    Vulkan SPIR-V backend.

# 3 See Also

ffmpeg, ffplay, ffprobe, libswscale

# 4 Authors

The FFmpeg developers.

For details about the authorship, see the Git history of the project (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command `git log` in the FFmpeg source directory, or browsing the online repository at https://git.ffmpeg.org/ffmpeg.

Maintainers for the specific components are listed in the file ‘`MAINTAINERS`’ in the source code tree.