FFmpeg 重采样器文档

目录

1 说明

FFmpeg 重采样器为 libswresample 库音频重采样实用程序提供了高级接口。特别是,它允许执行音频重采样、音频通道布局重新矩阵以及转换音频格式和打包布局。

2 重采样器选项

音频重采样器支持以下命名选项。

可以通过在 FFmpeg 工具中指定 -选项 值来设置选项,选项= aresample 过滤器的 SwrContext,通过在选项中显式设置值或使用libavutil/opt.h用于编程使用的 API。

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

设置输入/输出通道布局。

有关所需语法, 请参阅ffmpeg-utils(1) 手册中的 (ffmpeg-utils) 通道布局部分。

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

选择柴田噪声整形抖动。

low_shibata

选择低柴田噪声整形抖动。

high_shibata

选择高柴田噪声整形抖动。

f_weighted

选择 f 加权噪声整形抖动

modified_e_weighted

选择改进的电子加权噪声整形抖动

improved_e_weighted

选择改进的电子加权噪声整形抖动

resampler

设置重采样引擎。默认值为 swr。

支持的值:

swr

选择本机软件重采样器;过滤器选项 precision 和 cheby 在这种情况下不适用。

soxr

选择 SoX Resampler(如果可用);补偿和滤波器选项 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,选择通带滚降无(切比雪夫)和“无理”比率的更高精度近似。默认值为 0。

async

仅适用于 swr,使用拉伸、挤压、填充和修剪将简单的 1 参数音频同步到时间戳。将其设置为 1 将启用填充和修剪,较大的值表示每秒可以拉伸或压缩数据的最大样本量。默认值为 0,因此不会应用补偿来使样本与音频时间戳匹配。

first_pts

仅对于 swr,假设第一个点应该是这个值。时间单位是1/采样率。这允许在流开始时进行填充/修剪。默认情况下,不会对第一帧的预期点数做出任何假设,因此不会进行填充或修剪。例如,如果音频流在视频流之后开始,则可以将其设置为 0,以便用静音填充开头,或者由于编码器延迟而用负点修剪任何样本。

min_comp

仅对于 swr,设置时间戳和音频数据之间的最小差异(以秒为单位)以触发数据的拉伸/挤压/填充或修剪,以使其与时间戳匹配。默认情况下,拉伸/挤压/填充和修剪被禁用(最小补偿量= FLT_MAX)。

min_hard_comp

仅对于 swr,设置时间戳和音频数据之间的最小差异(以秒为单位)以触发添加/删除样本以使其与时间戳匹配。该选项实际上是在硬(修剪/填充)和软(挤压/拉伸)补偿之间进行选择的阈值。请注意,默认情况下,通过以下方式禁用所有补偿最小补偿量。默认值为 0.1。

comp_duration

仅对于 swr,设置数据拉伸/压缩以使其与时间戳匹配的持续时间(以秒为单位)。必须是非负双浮点值,默认值为 1.0。

max_soft_comp

仅对于 swr,设置数据拉伸/压缩的最大因子以使其与时间戳匹配。必须是非负双浮点值,默认值为 0。

matrix_encoding

选择矩阵立体声编码。

它接受以下值:

none

选择无

dolby

选择杜比

dplii

选择杜比定向逻辑 II

默认值为none

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

3 另请参阅

ffmpegffplayffprobelibswresample

4 位作者

FFmpeg 开发人员。

git log有关作者身份的详细信息,请参阅项目的 Git 历史记录 (https://git.ffmpeg.org/ffmpeg),例如通过在 FFmpeg 源目录中键入命令 ,或浏览https://git 的在线存储库。 ffmpeg.org/ffmpeg

文件中列出了特定组件的维护者 维护者在源代码树中。

本文档于2023 年 11 月 17 日使用makeinfo 生成。

由telepoint.bg提供的托管