FFplay文档解读-21-音频过滤器六

前言

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 11000 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项不连续nuttallblackman-nuttall)窗口
bharris blackman-harris窗口
tukey tukey窗口
fixed

如果启用,请使用固定数量的音频样本。 这可以在大延迟过滤时提高速度。 默认为禁用。

multi

启用多通道评估增益。 默认为禁用。

zero_phase

通过减去时间戳来补偿延迟来启用零相位模式。 默认为禁用。

scale

设置增益使用的比例。 可接受的值是:

解释
linlin 线性频率,线性增益
linlog 线性频率,对数(以dB为单位)增益(默认)
loglin 对数(在20 Hz0的倍频程中)频率,线性增益
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_entry1000 Hzlowpass

      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

设置基本延迟(以毫秒为单位)。 范围从030。默认值为0

depth

设置添加的扫描延迟(以毫秒为单位)。 范围从010。默认值为2

regen

设置百分比再生(延迟信号反馈)。 范围从-9595。默认值为0

width

设置延迟信号与原始信号混合的百分比。 范围从0100。默认值为71

speed

设置每秒扫描次数(Hz)。 范围从0.110。默认值为0.5

shape

设置扫掠波形,可以是三角形或正弦形。 默认值是正弦曲线。

phase

为多通道设置扫描波百分比移位。 范围从0100。默认值为25

interp

设置延迟线插值,linearquadratic。 默认是linear的。

26.54 haas

将哈斯效应应用于音频。

请注意,这最适合应用于单声道信号。 通过将此滤波器应用于单声道信号,它可以提供一些方向性并拉伸其立体声图像。

过滤器接受以下选项:

level_in

设置输入级别。 默认为10dB

level_out

设置输出级别。 默认为10dB

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码的16PCM流被扩展为20PCM流。

滤波器支持HDCD的峰值延伸和低电平增益调整功能,并检测瞬态滤波器标志。

ffmpeg -i HDCD16.flac -af hdcd OUT24.flac

当使用带有wav的过滤器时,请注意wav的默认编码是16位,因此生成的20位流将被截断回16位。 在过滤器之后使用类似-acodec pcm_s24le的内容来获得24PCM输出。

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。允许范围为102496000

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

加载LADSPALinux Audio DeveloperSimple 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-pluginsTom的音频处理插件)为音频添加混响:

      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个控制值。

如果指定的值无效,则忽略它并保留前一个值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容