FFplay文档解读-23-音频过滤器八
前言
Github地址:Github
简书地址:简书
专辑地址:FFplay专辑
26.70 silencedetect
检测音频流中的静音。
此过滤器在检测到输入音量小于或等于噪声容限值的持续时间大于或等于最小检测到的噪声持续时间时记录消息。
打印时间和持续时间以秒为单位表示。
过滤器接受以下选项:
duration, d
设置静音持续时间直到通知(默认为2秒)。
noise, n
设置噪音容差。 可以以dB为单位指定(如果dB附加到指定值)或幅度比。 默认值为-60dB或0.001。
26.70.1 示例
-
使用
-50dB噪声容限检测5秒静音:silencedetect=n=-50dB:d=5 -
完整示例使用
ffmpeg在silence.mp3中检测具有0.0001噪声容限的静音:ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
26.71 silenceremove
从音频的开头,中间或末尾删除静音。
过滤器接受以下选项:
start_periods
此值用于指示是否应在音频开头修剪音频。值为零表示不应从头开始修剪静音。指定非零值时,它会调整音频,直到找到非静音。通常,当从音频开始调整静音时,start_periods将为1,但是可以将其增加到更高的值以将所有音频调整到非静音时段的特定计数。默认值为0。
start_duration
指定在停止修剪音频之前必须检测到非静音的时间量。通过增加持续时间,可以将噪声突发视为静音并进行修剪。默认值为0。
start_threshold
这表明应将哪个样本值视为静音。对于数字音频,值0可能没问题但是对于从模拟录制的音频,您可能希望增加该值以考虑背景噪声。可以以dB为单位指定(如果dB附加到指定值)或幅度比。默认值为0。
stop_periods
设置音频结束时修剪静音的计数。要从文件中间删除静音,请指定一个负数的stop_periods。然后将该值视为正值,并用于指示效果应重启start_periods指定的处理,使其适合于删除音频中间的静音时段。默认值为0。
stop_duration
指定在不再复制音频之前必须存在的静音持续时间。通过指定更高的持续时间,可以在音频中保留所需的静音。默认值为0。
stop_threshold
这与start_threshold相同,但是从音频结束处调整静音。可以以dB为单位指定(如果dB附加到指定值)或幅度比。默认值为0。
leave_silence
这表明在每个静默期开始时,音频的stop_duration长度应保持不变。例如,如果要删除单词之间的长暂停但不想完全删除暂停。默认值为0。
detection
设置如何检测静音。可以是rms或峰值。第二种是更快,并且数字静音恰好是0,效果更好。默认值是rms。
window
设置用于计算窗口大小的比率,用于检测静音。默认值为0.02。允许范围为0到10。
26.71.1 示例
-
以下示例显示了如何使用此过滤器来启动不包含开始时延迟的记录,这通常发生在按下记录按钮和性能开始之间:
silenceremove=1:5:0.02 -
修剪从头到尾遇到的所有沉默,其中音频中有超过
1秒的静音:silenceremove=0:0:0:-1:1:-90dB
26.72 sofalizer
SOFAlizer使用与头部相关的传输功能(HRTFs)在用户周围创建虚拟扬声器,以通过耳机进行双声道聆听(支持最多9个通道的音频格式)。 HRTFs存储在SOFA文件中(有关数据库,请参见(http://www.sofacoustics.org/)。 SOFAlizer由奥地利科学院的声学研究所(ARI)开发。
要启用此过滤器的编译,需要使用--enable-libmysofa配置FFmpeg。
过滤器接受以下选项:
sofa
设置用于渲染的SOFA文件。
gain
设置应用于音频的增益。值以dB为单位。默认值为0。
rotation
将虚拟扬声器的旋转设置为deg。默认值为0。
elevation
以度为单位设置虚拟扬声器的高程。默认值为0。
radius
使用近场HRTFs设置扬声器和收听者之间的距离(米)。默认值为1。
type
设置处理类型。可以是时间或频率。时间正在处理时域中的音频很慢。 freq在频域处理音频很快。默认是freq。
speakers
设置虚拟扬声器的自定义位置。此选项的语法为:<CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]。每个虚拟扬声器都用短通道名称描述,方位角和仰角度数。每个虚拟扬声器描述用’|’分隔。例如,要覆盖左前和右前通道位置,请使用:’speakers=FL 45 15|FR 345 15’。无法识别的通道名称的描述将被忽略。
lfegain
设置LFE通道的自定义增益。值以dB为单位。默认值为0。
26.72.1 示例
-
使用
ClubFritz6 sofa文件:sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1 -
使用
ClubFritz12沙发文件和更大的半径旋转小:sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5 -
与上面类似,但左前,右前,后左和右后方的定制扬声器位置以及自定义增益:
"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
26.73 stereotools
该滤波器具有一些便利的实用程序来管理立体声信号,用于将M/S立体声录音转换为L/R信号,同时控制参数或扩展主轨道的立体声图像。
过滤器接受以下选项:
level_in
在过滤两个通道之前设置输入电平。默认值为1。允许范围为0.015625至64。
level_out
过滤两个通道后设置输出电平。默认值为1。允许范围为0.015625至64。
balance_in
设置两个通道之间的输入平衡。默认值为0。允许的范围是-1到1。
balance_out
设置两个通道之间的输出平衡。默认值为0。允许的范围是-1到1。
softclip
启用软切换。导致模拟失真而不是苛刻的数字0dB削波。默认情况下禁用。
mutel
将左声道静音。默认情况下禁用。
muter
将正确的频道静音。默认情况下禁用。
phasel
更改左声道的相位。默认情况下禁用。
phaser
更改右声道的相位。默认情况下禁用。
mode
设置立体声模式。可用值包括:
| 立体声模式 | 解释 |
|---|---|
| lr>lr | 左/右到左/右,默认值 |
| lr>ms | 左/右到中/侧 |
| ms>lr | 中/侧到左/右 |
| lr>ll | 左/右到左/左 |
| lr>rr | 左/右到右 |
| lr>l+r | 左/右到左+右 |
| lr>rl | 左/右到右 |
| ms>ll | 中/左/左 |
| ms>rr | 中/侧到右/右 |
slev
设置侧信号电平。 默认值为1。允许范围为0.015625到64。
sbal
设置侧信号的平衡。 默认值为0。允许的范围是-1到1。
mlev
设置中间信号的电平。 默认值为1。允许范围为0.015625到64。
mpan
设置中间信号盘。 默认值为0。允许的范围是-1到1。
base
在单声道和反向声道之间设置立体声基础。 默认值为0。允许的范围是-1到1。
delay
设置延迟(以毫秒为单位)从右声道延迟多少,反之亦然。 默认值为0。允许的范围为-20到20。
sclevel
设置S/C级别。 默认值为1。允许范围为1到100。
phase
以度为单位设置立体声相位。 默认值为0。允许的范围为0到360。
bmode_in,bmode_out
为balance_in/balance_out选项设置平衡模式。
下面是相关选项:
| 模式 | 解释 |
|---|---|
| balance | 经典的平衡模式。 一次减弱一个频道。 增益提升至1 |
| amplitude | 与上面的经典模式类似,但增益最高可达2
|
| power | 等功率分配,范围从-6dB到+6dB
|
26.73.1 示例
-
应用
karaoke效果:stereotools=mlev=0.015625 -
将
M/S信号转换为L/R:"stereotools=mode=ms>lr"
26.74 stereowiden
该滤波器通过抑制两个声道共用的信号并通过将左声道信号延迟到右声道而反之亦然来增强立体声效果,从而加宽立体声效果。
过滤器接受以下选项:
delay
左信号延迟到右边的时间,以毫秒为单位,反之亦然。 默认值为20毫秒。
feedback
延迟信号的增益量为右,反之亦然。 在右输出中产生左信号的延迟效果,反之亦然,从而产生加宽效果。 默认值为0.3。
crossfeed
左相交叉进给,倒相。 这有助于抑制单声道。 如果该值为1,则将取消两个通道共有的所有信号。 默认值为0.3。
drymix
设置原始通道的输入信号级别。 默认值为0.8。
26.75 superequalizer
应用18波段均衡器。
过滤器接受以下选项:
1B
设置65Hz频段增益。
2B
设置92Hz频段增益。
3B
设置131Hz频段增益。
4B
设置185Hz频段增益。
5B
设置262Hz频段增益。
6B
设置370Hz频段增益。
7B
设置523Hz频段增益。
8B
设置740Hz频段增益。
9B
设置1047Hz频段增益。
10B
设置1480Hz频段增益。
11B
设置2093Hz频段增益。
12B
设置2960Hz频段增益。
13B
设置4186Hz频段增益。
14B
设置5920Hz频段增益。
15B
设置8372Hz频段增益。
16B
设置11840Hz频段增益。
17B
设置16744Hz频段增益。
18B
设置20000Hz频段增益。
26.76 surround
应用音频环绕上混滤波器。
此过滤器允许从音频流生成多声道输出。
过滤器接受以下选项:
chl_out
设置输出通道布局。默认情况下,这是5.1。
有关所需语法,请参阅(ffmpeg-utils)通道布局语法。
chl_in
设置输入通道布局。默认情况下,这是立体声。
有关所需语法,请参阅(ffmpeg-utils)通道布局语法。
level_in
设置输入音量级别。默认情况下,这是1。
level_out
设置输出音量级别。默认情况下,这是1。
lfe
如果输出通道布局,则启用LFE通道输出。默认情况下,启用此功能。
lfe_low
设置LFE低截止频率。默认情况下,这是128 Hz。
lfe_high
设置LFE高截止频率。默认情况下,这是256 Hz。
fc_in
设置前中心输入音量。默认情况下,这是1。
fc_out
设置前中心输出音量。默认情况下,这是1。
lfe_in
设置LFE输入音量。默认情况下,这是1。
lfe_out
设置LFE输出音量。默认情况下,这是1。
26.77 treble
使用双极搁架滤波器提升或削减音频的高音(上)频率,其响应类似于标准高保真音调控制的响应。 这也称为搁置均衡(EQ)。
过滤器接受以下选项:
gain, g
在~22 kHz和奈奎斯特频率中较低者中给出增益。 它的有用范围是大约-20(对于大切割)到+20(对于大的提升)。 使用正增益时要小心剪裁。
frequency, f
设置滤波器的中心频率,因此可用于扩展或减小要增强或削减的频率范围。 默认值为3000 Hz。
width_type,t
设置方法以指定过滤器的带宽。
| 带宽 | 解释 |
|---|---|
| h | Hz |
| q | Q-Factor |
| o | octave |
| s | slope |
| k | kHz |
width, w
确定过滤器的shelf过渡有多steep。
channels, c
指定要过滤的通道,默认情况下会过滤所有可用的通道。
26.77.1 命令行
此筛选器支持以下命令:
frequency, f
改变高音频率。 该命令的语法是:frequency
width_type,t
更改高音width_type。 该命令的语法是:width_type
width, w
改变高音宽度。 该命令的语法是:width
gain, g
改变高音增益。 该命令的语法是:gain
26.78 tremolo
正弦振幅调制。
过滤器接受以下选项:
f
调制频率,单位为赫兹。 分谐波范围(20Hz或更低)的调制频率将导致颤音效应。 通过指定高于20Hz的调制频率,该滤波器也可以用作环形调制器。 范围是0.1 - 20000.0。 默认值为5.0 Hz。
d
调制深度百分比。 范围是0.0 - 1.0。 默认值为0.5。
26.79 vibrato
正弦相位调制。
过滤器接受以下选项:
f
调制频率,单位为赫兹。 范围是0.1 - 20000.0。 默认值为5.0 Hz。
d
调制深度百分比。 范围是0.0 - 1.0。 默认值为0.5。