美文网首页FFPlay专辑
FFplay文档解读-21-音频过滤器六

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

作者: 张芳涛 | 来源:发表于2018-11-15 16:51 被阅读19次

    前言

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

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

    相关文章

      网友评论

        本文标题:FFplay文档解读-21-音频过滤器六

        本文链接:https://www.haomeiwen.com/subject/isnyfqtx.html