教程菜单 本页目录

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,表示未使用。

本页目录