1 描述
FFmpeg 重采样器为 libswresample 库音频重采样实用程序提供了高级接口。特别是,它允许执行音频重采样、音频通道布局重矩阵化以及转换音频格式和打包布局。
2 重采样器选项
音频重采样器支持以下命名选项。
可以通过在 FFmpeg 工具中指定 - 来设置选项,对于 aresample 过滤器指定 =,通过在选项中明确设置值或使用 API 进行编程使用。选项值选项值SwrContextlibavutil/opt.h
- uchl, used_chlayout
-
设置使用的输入通道布局。默认为未设置。此选项仅用于特殊重映射。
- isr, in_sample_rate
-
设置输入采样率。默认值为 0。
- osr, out_sample_rate
-
设置输出采样率。默认值为 0。
- isf, in_sample_fmt
-
指定输入样本格式。默认设置为 。无
- osf, out_sample_fmt
-
指定输出样本格式。默认设置为 。无
- tsf, internal_sample_fmt
-
设置内部样本格式。默认值为 。未明确设置时将自动选择。无
- ichl, in_chlayout
- ochl, out_chlayout
-
设置输入/输出通道布局。
有关所需语法,请参阅 (ffmpeg-utils)ffmpeg-utils(1) 手册中的通道布局部分。
- clev, center_mix_level
-
设置中心混合级别。该值以分贝表示,必须在区间 [-32,32] 内。
- slev, surround_mix_level
-
设置环绕混合级别。该值以分贝表示,必须在区间 [-32,32] 内。
- lfe_mix_level
-
将 LFE 混合设置为非 LFE 级别。当有 LFE 输入但没有 LFE 输出时使用。它是一个以分贝表示的值,必须在区间 [-32,32] 内。
- rmvol, rematrix_volume
-
设置重新矩阵音量。默认值为 1.0。
- rematrix_maxval
-
设置重新矩阵的最大输出值。这可用于防止削波而不是防止音量降低。值为 1.0 可防止削波。
- flags, swr_flags
-
设置转换器使用的标志。默认值为 0。
它支持以下单独的标志:
- res
-
强制重采样,此标志强制使用重采样,即使输入和输出采样率匹配。
- dither_scale
-
设置抖动比例。默认值为 1。
- dither_method
-
设置抖动方法。默认值为 0。
支持的值:
- ‘’ rectangular
-
选择矩形抖动
- ‘’ triangular
-
选择三角形抖动
- ‘’ triangular_hp
-
选择高通三角形抖动
- ‘’ lipshitz
-
选择 Lipshitz 噪声整形抖动。
- ‘’ shibata
-
选择 Shibata 噪声整形抖动。
- ‘’ low_shibata
-
选择低 Shibata 噪声整形抖动。
- ‘’ high_shibata
-
选择高 Shibata 噪声整形抖动。
- ‘’ f_weighted
-
选择 f 加权噪声整形抖动
- ‘’ modified_e_weighted
-
选择改进的 e 加权噪声整形抖动
- ‘’ improved_e_weighted
-
选择改进的 e 加权噪声整形抖动
- resampler
-
设置重采样引擎。默认值为 swr。
支持的值:
- ‘’ swr
-
选择原生 SW 重采样器;在这种情况下,过滤选项 precision 和 cheby 不适用。
- ‘’ soxr
-
选择 SoX 重采样器(如果可用);补偿和过滤器选项 filter_size、phase_shift、exact_rational、filter_type 和 kaiser_beta 不适用于此情况。
- filter_size
-
仅适用于 swr,设置重采样过滤器大小,默认值为 32。
- phase_shift
-
仅适用于 swr,设置重采样相移,默认值为 10,并且必须在区间 [0,30] 内。
- linear_interp
-
启用时使用线性插值(默认)。如果您想在 exact_rational 失败时保持速度而不是质量,请禁用它。
- exact_rational
-
仅适用于 swr,启用后,尝试根据输入和输出采样率使用精确的 phase_count。但是,如果它大于 ,phase_count 将作为后备。默认启用。1 << phase_shift1 << phase_shift
- cutoff
-
设置截止频率(swr:6dB 点;soxr:0dB 点)比率;必须是 0 到 1 之间的浮点值。默认值为 swr 的 0.97,soxr 的 0.91(采样率为 44100,将整个音频带保留为 20kHz)。
- precision
-
仅适用于 soxr,重采样信号计算的精度(以位为单位)。默认值为 20(经过适当的抖动,适用于目标位深度为 16)可实现 SoX 的“高质量”;值为 28 可实现 SoX 的“非常高质量”。
- cheby
-
仅适用于 soxr,选择无通带滚降(切比雪夫)和“无理”比率的更高精度近似值。默认值为 0。
- async
-
仅适用于 swr,使用拉伸、压缩、填充和修剪,简单的 1 参数音频同步到时间戳。将其设置为 1 将启用填充和修剪,较大的值表示数据每秒可能拉伸或压缩的最大样本量。默认值为 0,因此不应用任何补偿来使样本与音频时间戳匹配。
- first_pts
-
仅适用于 swr,假设第一个 pts 应为该值。时间单位为 1/采样率。这允许在流开始时进行填充/修剪。默认情况下,不对第一帧的预期 pts 做出任何假设,因此不进行填充或修剪。例如,如果音频流在视频流之后开始,则可以将其设置为 0 以用静音填充开头,或者修剪由于编码器延迟而具有负 pts 的任何样本。
- min_comp
-
仅适用于 swr,设置时间戳和音频数据之间的最小差异(以秒为单位)以触发数据的拉伸/压缩/填充或修剪,使其与时间戳匹配。默认情况下,拉伸/压缩/填充和修剪被禁用(=)。min_compFLT_MAX
- min_hard_comp
-
仅适用于 swr,设置时间戳和音频数据之间的最小差异(以秒为单位)以触发添加/删除样本,使其与时间戳匹配。此选项实际上是在硬(修剪/填充)和软(挤压/拉伸)补偿之间进行选择的阈值。请注意,默认情况下,所有补偿都通过禁用。默认值为 0.1。 min_comp
- comp_duration
-
仅适用于 swr,设置数据拉伸/压缩以使其与时间戳匹配的持续时间(以秒为单位)。必须是非负双精度浮点值,默认值为 1.0。
- max_soft_comp
-
仅适用于 swr,设置数据拉伸/压缩的最大因子,使其与时间戳匹配。必须是非负双精度浮点值,默认值为 0。
- matrix_encoding
-
选择矩阵立体声编码。
它接受以下值:
- ‘’ none
-
选择无
- ‘’ dolby
-
选择杜比
- ‘’ dplii
-
选择杜比 Pro Logic II
默认值为。无
- filter_type
-
仅适用于 swr,选择重采样滤波器类型。这仅影响重采样操作。
它接受以下值:
- ‘’ cubic
-
选择立方
- ‘’ blackman_nuttall
-
选择 Blackman Nuttall 窗口 sinc
- ‘’ kaiser
-
选择 Kaiser 窗口 sinc
- kaiser_beta
-
仅适用于 swr,设置 Kaiser 窗口 beta 值。必须是区间 [2,16] 内的双精度浮点值,默认值为 9。
- output_sample_bits
-
仅适用于 swr,设置用于抖动的输出样本位数。必须是区间 [0,64] 内的整数,默认值为 0,表示未使用。