# FFmpeg Resampler Documentation

# Table of Contents

# 1. Description

The FFmpeg resampler provides an high-level interface to the libswresample library audio resampling utilities. In particular it allows to perform audio resampling, audio channel layout rematrixing, and convert audio format and packing layout.

# 2. Resampler Options

The audio resampler supports the following named options.

Options may be set by specifying -option value in the FFmpeg tools, or by setting the value explicitly in the `SwrContext` options or using the ‘`libavutil/opt.h`’ API for programmatic use.

‘`ich, in_channel_count`’

  Set the number of input channels. Default value is 0. Setting this value is not mandatory if the corresponding channel layout ‘`in_channel_layout`’ is set.

‘`och, out_channel_count`’

  Set the number of output channels. Default value is 0. Setting this value is not mandatory if the corresponding channel layout ‘`out_channel_layout`’ is set.

‘`uch, used_channel_count`’

  Set the number of used channels. Default value is 0. This option is only used for special remapping.

‘`isr, in_sample_rate`’

  Set the input sample rate. Default value is 0.

‘`osr, out_sample_rate`’

  Set the output sample rate. Default value is 0.

‘`isf, in_sample_fmt`’

  Specify the input sample format. Must be an integer representing the corresponding sample format specified in ‘`libavutil/samplefmt.h`’ header. Default value is -1 (corresponding to `AV_SAMPLE_FMT_NONE`).

‘`osf, out_sample_fmt`’

  Specify the output sample format. Must be an integer representing the corresponding sample format specified in ‘`libavutil/samplefmt.h`’ header. Default value is -1 (corresponding to `AV_SAMPLE_FMT_NONE`).

‘`tsf, internal_sample_fmt`’

  Set the internal sample format. Default value is -1.

‘`icl, in_channel_layout`’

  Set the input channel layout.

‘`ocl, out_channel_layout`’

  Set the output channel layout.

‘`clev, center_mix_level`’

  Set center mix level. It is a value expressed in deciBel, and must be inclusively included between -32 and +32.

‘`slev, surround_mix_level`’

  Set surround mix level. It is a value expressed in deciBel, and must be inclusively included between -32 and +32.

‘`lfe_mix_evel`’

  Set LFE mix level.

‘`rmvol, rematrix_volume`’

  Set rematrix volume. Default value is 1.0.

‘`flags, swr_flags`’

  Set flags used by the converter. Default value is 0.

  It supports the following individual flags:

  ‘`res`’

    force resampling

‘`dither_scale`’

  Set the dither scale. Default value is 1.

‘`dither_method`’

  Set dither method. Default value is 0.

  Supported values:

  ‘`rectangular`’

    select rectangular dither

  ‘`triangular`’

    select triangular dither

  ‘`triangular_hp`’

    select triangular dither with high pass

‘`filter_size`’

  Set resampling filter size, default value is 16.

‘`phase_shift`’

  Set resampling phase shift, default value is 10, must be included between 0 and 30.

‘`linear_interp`’

  Use Linear Interpolation if set to 1, default value is 0.

‘`cutoff`’

  Set cutoff frequency ratio. Must be a float value between 0 and 1, default value is 0.8.

‘`min_comp`’

  Set minimum difference between timestamps and audio data (in seconds) below which no timestamp compensation of either kind is applied. Default value is `FLT_MAX`.

‘`min_hard_comp`’

  Set minimum difference between timestamps and audio data (in seconds) to trigger padding/trimming the data. Must be a non-negative double, default value is 0.1.

‘`comp_duration`’

  Set duration (in seconds) over which data is stretched/squeezed to make it match the timestamps. Must be a non-negative double float value, default value is 1.0.

‘`max_soft_comp`’

  Set maximum factor by which data is stretched/squeezed to make it match the timestamps. Must be a non-negative double float value, default value is 0.

‘`matrix_encoding`’

  Select matrixed stereo encoding.

  It accepts the following values:

  ‘`none`’

    select none

  ‘`dolby`’

    select Dolby

  ‘`dplii`’

    select Dolby Pro Logic II

  Default value is `none`.

‘`filter_type`’

  Select resampling filter type. This only affects resampling operations.

  It accepts the following values:

  ‘`cubic`’

    select cubic

  ‘`blackman_nuttall`’

    select Blackman Nuttall Windowed Sinc

  ‘`kaiser`’

    select Kaiser Windowed Sinc

‘`kaiser_beta`’

  Set Kaiser Window Beta value. Must be an integer included between 2 and 16, default value is 9.