前言
Github
地址:Github
简书地址:简书
专辑地址:FFplay专辑
26.50 equalizer
应用双极峰值均衡(EQ
)滤波器。 利用该滤波器,可以增加或减少所选频率处和附近的信号电平,同时(与带通和带阻滤波器不同)在所有其他频率处不变。
为了产生复杂的均衡曲线,可以多次给出该滤波器,每个滤波器具有不同的中心频率。
过滤器接受以下选项:
frequency, f
以Hz
为单位设置滤波器的中心频率。
width_type,t
设置方法以指定过滤器的带宽:
参数 | 解释 |
---|---|
h | Hz |
q | Q-Factor |
o | octave |
s | slope |
k | kHz |
width, w
以width_type
为单位指定过滤器的带宽。
gain, g
以dB
为单位设置所需的增益或衰减。 使用正增益时要小心剪裁。
channels, c
指定要过滤的通道,默认情况下会过滤所有可用的通道。
26.50.1 示例
-
在
1000 Hz
时衰减10 dB
,带宽为200 Hz
:equalizer=f=1000:t=h:width=200:g=-10
-
使用
Q 1
在1000 Hz
时应用2 dB
增益,在Q 2
下以100 Hz
衰减5 dB
:equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
26.50.2 命令行
此筛选器支持以下命令:
frequency, f
改变均衡器频率。 该命令的语法是:frequency
width_type,t
更改均衡器width_type
。 该命令的语法是:width_type
width, w
改变均衡器宽度。 该命令的语法是:width
gain, g
改变均衡器增益。 该命令的语法是:gain
26.51 extrastereo
线性增加左右声道之间的差异,这为回放增加了某种"live"
效果。
过滤器接受以下选项:
m
设置差异系数(默认值:2.5
)。 0.0
表示单声道声音(两个声道的平均值),1.0
声音将保持不变,-1.0
左右声道将被交换。
c
启用剪辑。 默认情况下已启用。
26.52 firequalizer
使用任意频率响应申请均衡。
过滤器接受以下选项:
gain
设置增益曲线方程(以dB
为单位)。 表达式可以包含变量:
参数 | 解释 |
---|---|
f | 评估的频率 |
sr | 采样率 |
ch | 通道编号,禁用多通道评估时设置为0
|
chid | 通道ID ,请参阅libavutil / channel_layout.h ,设置为禁用多通道评估时的第一个通道ID
|
chs | 频道数量 |
chlayout |
channel_layout ,请参阅libavutil / channel_layout.h
|
还有如下功能:
功能 | 解释 |
---|---|
gain_interpolate(f) | 基于gain_entry 在频率f 上插值增益 |
cubic_interpolate(f) | 与gain_interpolate 相同,但更平滑 |
此选项也可用作命令。 默认值为gain_interpolate(f)
。
gain_entry
设置gain_interpolate
函数的增益条目。 表达式可以包含函数:
函数 | 解释 |
---|---|
entry(f, g) | 以频率f存储增益输入值g
|
此选项也可用作命令。
delay
以秒为单位设置过滤延迟。 值越高意味着越准确。 默认值为0.01
。
accuracy
设置滤波器精度,单位为Hz
较低的值意味着更准确。 默认值为5
。
wfunc
设置窗口功能。 可接受的值如下:
值 | 参数 |
---|---|
rectangular | 矩形窗口,当增益曲线已经平滑时很有用 |
hann |
hann 窗口(默认值) |
hamming |
hamming 窗口 |
blackman |
blackman 窗口 |
nuttall3 | 3项连续一阶导数nuttall 窗口 |
mnuttall3 | 最小的3 项不连续的nuttall 窗口 |
nuttall |
4 项连续一阶导数nuttall 窗口 |
bnuttall | 最小的4项不连续nuttall (blackman-nuttall )窗口 |
bharris |
blackman-harris 窗口 |
tukey |
tukey 窗口 |
fixed
如果启用,请使用固定数量的音频样本。 这可以在大延迟过滤时提高速度。 默认为禁用。
multi
启用多通道评估增益。 默认为禁用。
zero_phase
通过减去时间戳来补偿延迟来启用零相位模式。 默认为禁用。
scale
设置增益使用的比例。 可接受的值是:
值 | 解释 |
---|---|
linlin | 线性频率,线性增益 |
linlog | 线性频率,对数(以dB 为单位)增益(默认) |
loglin | 对数(在20 Hz 为0 的倍频程中)频率,线性增益 |
loglog | 对数频率,对数增益 |
dumpfile
设置转储文件,适用于gnuplot
。
dumpscale
设置dumpfile
的比例。 可接受的值与scale
选项相同。 默认是linlog
。
fft2
使用复数FFT
启用2
通道卷积。 这显着提高了速度。 默认为禁用。
min_phase
启用最小相位脉冲响应。 默认为禁用。
26.52.1 示例
-
lowpass 1000 Hz:
firequalizer=gain='if(lt(f,1000), 0, -INF)'
-
使用
gain_entry
以1000 Hz
的lowpass
:firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
-
自定义均衡:
firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
-
零相位延迟更高以补偿延迟:
firequalizer=delay=0.1:fixed=on:zero_phase=on
-
左声道低通,右声道高通:
firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))':gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
26.53 flanger
对音频应用翻边效果。
过滤器接受以下选项:
delay
设置基本延迟(以毫秒为单位)。 范围从0
到30
。默认值为0
。
depth
设置添加的扫描延迟(以毫秒为单位)。 范围从0
到10
。默认值为2
。
regen
设置百分比再生(延迟信号反馈)。 范围从-95
到95
。默认值为0
。
width
设置延迟信号与原始信号混合的百分比。 范围从0
到100
。默认值为71
。
speed
设置每秒扫描次数(Hz
)。 范围从0.1
到10
。默认值为0.5
。
shape
设置扫掠波形,可以是三角形或正弦形。 默认值是正弦曲线。
phase
为多通道设置扫描波百分比移位。 范围从0
到100
。默认值为25
。
interp
设置延迟线插值,linear
或quadratic
。 默认是linear
的。
26.54 haas
将哈斯效应应用于音频。
请注意,这最适合应用于单声道信号。 通过将此滤波器应用于单声道信号,它可以提供一些方向性并拉伸其立体声图像。
过滤器接受以下选项:
level_in
设置输入级别。 默认为1
或0dB
level_out
设置输出级别。 默认为1
或0dB
。
side_gain
设置应用于信号侧面部分的增益。 默认为1
。
middle_source
设置一种中间源。 可以是以下之一:
中间源 | 解释 |
---|---|
left | 选择左通道 |
right | 选择正确的渠道 |
mid | 选择立体图像的中间部分信号 |
side | 选择立体图像的侧面部分信号 |
middle_phase
改变中期阶段。 默认情况下禁用。
left_delay
设置左声道延迟。 默认为2.05
毫秒。
left_balance
设置左声道平衡。 默认为-1
。
left_gain
设置左声道增益。 默认为1
。
left_phase
改变左相。 默认情况下禁用。
right_delay
设置正确的通道延迟。 默认值为2.12
毫秒。
right_balance
设置正确的通道平衡。 默认为1
。
right_gain
设置正确的通道增益。 默认为1
。
right_phase
改变正确的阶段。 默认情况下已启用。
26.55 hdcd
解码高清兼容数字(HDCD
)数据。 带有嵌入式HDCD
码的16
位PCM
流被扩展为20
位PCM
流。
滤波器支持HDCD
的峰值延伸和低电平增益调整功能,并检测瞬态滤波器标志。
ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
当使用带有wav
的过滤器时,请注意wav
的默认编码是16
位,因此生成的20
位流将被截断回16
位。 在过滤器之后使用类似-acodec pcm_s24le
的内容来获得24
位PCM
输出。
ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
过滤器接受以下选项:
disable_autoconvert
禁用筛选器图中的任何自动格式转换或重新取样。
process_stereo
一起处理立体声通道。 如果target_gain
在频道之间不匹配,请将其视为无效并使用最后一个有效的target_gain
。
cdt_ms
设置代码检测定时器周期,单位为ms
。
force_pe
即使未发出PE
信号,也始终将峰值扩展到-3dBFS
以上。
analyze_mode
用纯色音替换音频并调整幅度以表示解码过程的某些特定方面。 输出文件可以与原始文件一起加载到音频编辑器中以帮助分析。
analyze_mode = pe:force_pe = true
可用于查看PE
级别以上的所有样本。
模式是:
参数 | 解释 |
---|---|
0, off | Disabled |
1, lle | 获得每个样品的调整水平 |
2, pe | 发生峰值延伸的样品 |
3, cdt | 代码检测定时器处于活动状态的样本 |
4, tgm | 目标增益在通道之间不匹配的样本 |
26.56 headphone
应用与头部相关的传输功能(HRTF
)在用户周围创建虚拟扬声器,以通过耳机进行双耳听力。 HRIR
通过附加流提供,每个通道需要一个立体声输入流。
过滤器接受以下选项:
map
设置输入流的映射以进行卷积。该参数是一个'|'
分隔的通道名称列表,因为它们是作为过滤器的附加流输入给出的。这也指定了输入流的数量。输入流的数量必须不小于第一个流中的通道数加一个。
gain
设置应用于音频的增益。值以dB
为单位。默认值为0
。
type
设置处理类型。可以是时间或频率。时间正在处理时域中的音频很慢。 freq
在频域处理音频很快。默认是freq
。
lfe
设置LFE通道的自定义增益。值以dB
为单位。默认值为0
。
size
设置将在一次处理的样本数量中的帧大小。默认值为1024
。允许范围为1024
到96000
。
hrir
设置hrir
流的格式。默认值为立体声。替代价值是多元化的。如果值设置为立体声,则附加流的数量应该大于或等于第一输入流中的输入通道的数量。此外,每个附加流应具有立体声通道数。如果value
设置为multich
,则附加流的数量应该恰好为1
。此外,附加流的输入通道数应等于或大于第一输入流的两倍通道数。
26.56.1 示例
-
使用
wav
文件作为具有用于7.1
下混的amovie
过滤器的系数的完整示例,每个amovie
过滤器使用具有IR
系数作为输入的立体文件。 这些文件给出了虚拟扬声器每个位置的系数:ffmpeg -i input.wav -lavfi-complex "amovie=azi_270_ele_0_DFC.wav[sr],amovie=azi_90_ele_0_DFC.wav[sl],amovie=azi_225_ele_0_DFC.wav[br],amovie=azi_135_ele_0_DFC.wav[bl],amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe],amovie=azi_35_ele_0_DFC.wav[fl],amovie=azi_325_ele_0_DFC.wav[fr],[a:0][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR" output.wav
-
使用
wav
文件作为具有amovie
过滤器的系数的完整示例,用于7.1
下混,但现在采用multich hrir
格式。ffmpeg -i input.wav -lavfi-complex "amovie=minp.wav[hrirs],[a:0][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich" output.wav
26.57 highpass
应用具有3dB
点频率的高通滤波器。 滤波器可以是单极或双极(默认)。 滤波器以每极每极6dB
(每极每极20dB
)滚降。
过滤器接受以下选项:
frequency, f
设置频率,单位为Hz
。 默认值为3000
。
poles, p
设置极数。 默认值为2
。
width_type,t
设置方法以指定过滤器的带宽。
参数 | 解释 |
---|---|
h | Hz |
q | Q-Factor |
o | octave |
s | slope |
k | kHz |
width, w
以width_type
为单位指定过滤器的带宽。 仅适用于双极滤波器。 默认值为0.707q
并给出Butterworth
响应。
channels, c
指定要过滤的通道,默认情况下会过滤所有可用的通道。
26.57.1 命令行
此筛选器支持以下命令:
frequency, f
改变高通频率。 该命令的语法是:frequency
width_type,t
更改高通宽度_type
。 该命令的语法是:width_type
width, w
改变高通宽度。 该命令的语法是:width
26.58 join
将多个输入流连接到一个多通道流中。
它接受以下参数:
inputs
输入流的数量。 默认为2
。
map
将输入从输入映射到输出。 参数是一个'|'
分隔的映射列表,每个映射都在input_idx.in_channel-out_channel
形式中。 input_idx
是输入流的从0
开始的索引。 in_channel
可以是输入通道的名称(例如左前方的FL
)或指定输入流中的索引。 out_channel
是输出通道的名称。
当未明确指定映射时,过滤器将尝试猜测映射。 它首先尝试查找未使用的匹配输入通道,如果失败,则选择第一个未使用的输入通道。
加入3
个输入(正确设置通道布局):
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
从6
个单通道流构建5.1
输出:
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
out
26.59 ladspa
加载LADSPA
(Linux Audio Developer
的Simple Plugin API
)插件。
要启用此过滤器的编译,您需要使用--enable-ladspa
配置FFmpeg
。
file, f
指定要加载的LADSPA
插件库的名称。如果定义了环境变量LADSPA_PATH
,则在LADSPA_PATH
中由冒号分隔列表指定的每个目录中搜索LADSPA
插件,否则在标准LADSPA
路径中搜索,其顺序如下:‘HOME/.ladspa/lib/’, ‘/usr/local/lib/ladspa/’, ‘/usr/lib/ladspa/’
。
plugin, p
指定库中的插件。有些库只包含一个插件,但其他库包含许多插件。如果未设置此选项,则筛选器将列出指定库中的所有可用插件。
controls, c
设置'|'
分隔的控件列表,这些控件是零个或多个浮点值,用于确定加载的插件的行为(例如延迟,阈值或增益)。需要使用以下语法定义控件:c0=value0|c1=value1|c2=value2|...
,其中valuei
是在第i个控件上设置的值。或者,也可以使用以下语法定义它们:value0|value1|value2|...
,其中valuei
是在第i个控件上设置的值。如果‘controls’
设置为help
,则会打印所有可用控件及其有效范围。
sample_rate,s
指定采样率,默认为44100
。仅在插件输入为零时使用。
nb_samples,n
设置每个输出帧的每个通道的采样数,默认为1024
。仅在插件输入为零时使用。
duration, d
设置源音频的最短持续时间。请参阅(ffmpeg-utils
)接受语法的持续时间语法。请注意,结果持续时间可能大于指定的持续时间,因为生成的音频始终在完整帧的末尾被剪切。如果未指定,或者表达的持续时间为负,则应该永久生成音频。仅在插件输入为零时使用。
26.59.1 示例
-
列出放大器(
LADSPA
示例插件)库中的所有可用插件:ladspa=file=amp
-
列出
VCF
库中vcf_notch
插件的所有可用控件及其有效范围:ladspa=f=vcf:p=vcf_notch:c=help
-
使用
Computer Music Toolkit(CMT)
插件库模拟低质量音频设备:ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
-
使用
TAP-plugins
(Tom
的音频处理插件)为音频添加混响:ladspa=file=tap_reverb:tap_reverb
-
产生
0.2
噪声的白噪声:ladspa=file=cmt:noise_source_white:c=c0=.2
-
使用插件
C * Click -
来自C * Audio Plugin Suite(CAPS)
库的Metronome
生成20 bpm
点击:ladspa=file=caps:Click:c=c1=20'
-
应用
C* Eq10X2 - Stereo 10-band equaliser
效果:ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
-
使用
Steve Harris SWH Plugins
系列的快速超前限制器将音量增加20dB
:ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
-
使用
Steve Harris SWH Plugins
系列的Multiband EQ
衰减低频:ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
-
使用
C * Audio Plugin Suite(CAPS)
库中的Narrower
减少立体图像:ladspa=caps:Narrower
-
另一个白噪声,现在使用
C * Audio Plugin Suite(CAPS)
库:ladspa=caps:White:.2
-
一些分形噪声,使用
C * Audio Plugin Suite(CAPS)
库:ladspa=caps:Fractal:c=c1=1
-
使用
VLevel
插件进行动态卷规范化:ladspa=vlevel-ladspa:vlevel_mono
26.59.2 命令行
此筛选器支持以下命令:
cN
修改第N
个控制值。
如果指定的值无效,则忽略它并保留前一个值。