网站翻译由林建有提供支持
1 描述
FFmpeg 重采样器提供了一个到 libswresample 库音频重采样工具的高级接口。特别是,它允许进行音频重采样、音频通道布局重新混合以及转换音频格式和打包布局。
2 重采样器选项
音频重采样器支持以下命名选项。
可以通过指定 -选项 值在 FFmpeg 工具中设置选项,选项=值用于 aresample 滤镜的明确定值,SwrContext
选项 或使用libavutil/opt.hAPI 的编程方式使用。
- uchl, used_chlayout
设置使用的输入通道布局。默认未设置,此选项仅用于特殊重映射。
- isr, in_sample_rate
设置输入采样率。默认值为0。
- osr, out_sample_rate
设置输出采样率。默认值为0。
- isf, in_sample_fmt
指定输入采样格式。默认设置为
none
.- osf, out_sample_fmt
指定输出采样格式。默认设置为
none
.- tsf, internal_sample_fmt
设置内部采样格式。默认值为
none
。 如果未明确设置,它将自动选择。- ichl, in_chlayout
- ochl, out_chlayout
设置输入/输出通道布局。
- 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。然而,如果它大于
1 << phase_shift
,phase_count 将回退为1 << 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,选择无通带滚降 (Chebyshev) 和更高精度的“非理性”比率近似值。默认值为 0。
- async
仅限 swr,设置为可以根据时间戳同步到音频的简单 1 参数音频同步。设置此值为 1 将启用填充和修剪, 较大的数值表示每秒数据可能被拉伸或压缩的最大样本数量。 默认值为 0,因此不存在为匹配音频时间戳而应用的补偿。
- first_pts
仅限 swr,假设第一个 PTS 应为此值。时间单位为 1 / 采样率。 这允许在流的开头填充/修剪。默认情况下,对第一个帧的预期 PTS 不做假设, 因此不会填充或修剪。例如,可以将此值设为 0 以在音频流在视频流之后开始时用静音填充开头, 或者对由于编码器延迟产生的负的 PTS 的样本进行修剪。
- min_comp
仅限 swr,将触发拉伸/压缩/填充或修剪数据,使其与时间戳匹配的时间戳和音频数据(以秒为单位)之间的最小差异设置。 默认情况下,拉伸/压缩/填充和修剪是禁用的(min_comp =
FLT_MAX
).- min_hard_comp
仅限 swr,将触发添加/删除样本以使其与时间戳匹配的时间戳和音频数据(以秒为单位)之间的最小差异设置。 此选项实际上是选择硬(修剪/填充)补偿与软(压缩/拉伸)补偿的阈值。请注意, 通过min_comp默认禁用所有补偿。 默认值为 0.1。
- comp_duration
仅限 swr,设置时长(以秒为单位),用于拉伸/压缩数据以使其与时间戳匹配。 必须是非负双精度浮点值,默认值为 1.0。
- max_soft_comp
仅限 swr,设置用于拉伸/压缩数据以使其与时间戳匹配的最大因子。 必须是非负双精度浮点值,默认值为 0。
- matrix_encoding
选择矩阵立体声编码。
它接受以下值:
- ‘none’
选择无
- ‘dolby’
选择 Dolby
- ‘dplii’
选择 Dolby Pro Logic II
默认值为
none
.- filter_type
仅限 swr,选择重采样滤波器类型。这仅影响重采样操作。
它接受以下值:
- ‘cubic’
选择三次插值
- ‘blackman_nuttall’
选择布莱克曼努特尔窗正弦函数
- ‘kaiser’
选择凯瑟窗正弦函数
- kaiser_beta
仅限 swr,设置凯瑟窗的 beta 值。必须是介于 [2,16] 区间的双精度浮点值,默认值为 9。
- output_sample_bits
仅限 swr,设置用于抖动的输出样本位数。必须是介于 [0,64] 区间的整数,默认值为0,表示未使用。
3 另见
ffmpeg, ffplay, ffprobe, libswresample
4 作者
FFmpeg 开发者。
有关作者的详细信息,请参阅项目的 Git 历史(https://git.ffmpeg.org/ffmpeg),例如通过键入以下命令git log
在 FFmpeg 源目录中,或浏览在线代码仓库于https://git.ffmpeg.org/ffmpeg.
特定组件的维护者在源代码树中的文件MAINTAINERS中列出。
此文档由makeinfo.
托管由以下机构提供telepoint.bg