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.