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

FFplay文档解读-17-音频过滤器二

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

    前言

    Github地址:Github
    简书地址:简书
    专辑地址:FFplay专辑

    26.11 afftfilt

    将任意表达式应用于频域中的样本。

    real
    

    为由'|'分隔的每个单独通道设置频域实数表达式。 默认值为'1'。 如果输入通道的数量大于表达式的数量,则最后指定的表达式将用于其余输出通道。

    imag
    

    设置由'|'分隔的每个单独通道的频域虚构表达式。 如果未设置,则使用实际选项。

    realimag中的每个表达式都可以包含以下常量:

    参数 解释
    sr 采样率
    b 当前频率bin
    nb 可用垃圾箱数量
    ch 当前表达式的通道号
    chs 频道数量
    pts 当前帧数
    win_size
    

    设置窗口大小。

    它接受以下值:

    w16
    w32
    w64
    w128
    w256
    w512
    w1024
    w2048
    w4096
    w8192
    w16384
    w32768
    w65536

    默认值是:w4096

    win_func
    

    设置窗口功能。默认是hann

    overlap
    

    设置窗口重叠。 如果设置为1,将选择所选窗口功能的建议重叠。 默认值为0.75

    26.11.1 示例

    • 只留下音频中的低频:

        afftfilt="1-clip((b/nb)*b,0,1)"
      

    26.12 afir

    应用任意频率脉冲响应滤波器。

    该滤波器设计用于应用长达30秒的长FIR滤波器。

    它可以用作数字交叉滤波器,房间均衡,串扰消除,波场合成,可听化,ambiophonicsambisonics的组件。

    该滤波器使用第二流作为FIR系数。 如果第二个流保持单个信道,则它将用于第一个流中的所有输入信道,否则第二个流中的信道数必须与第一个流中的信道数相同。

    它接受以下参数:

    dry
    

    设定dry增益。 这设置了输入增益。

    wet
    

    设定wet增益。 这设定了最终输出增益。

    length
    

    设置脉冲响应滤波器长度。 默认值为1,表示处理整个IR

    again
    

    启用应用IR功率测量的增益。

    26.12.1 示例

    使用单声道IR文件作为第二个输入应用混响流,使用ffmpeg完成命令:

    ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
    

    26.13 aformat

    设置输入音频的输出格式约束。 该框架将协商最合适的格式,以尽量减少转换。

    它接受以下参数:

    sample_fmts
    

    所请求的样本格式的'|'分隔列表。

    sample_rates
    

    请求采样率的'|'分隔列表。

    channel_layouts
    

    所请求的通道布局的'|'分隔列表。

    有关所需语法,请参阅channel布局语法。

    如果省略参数,则允许所有值。

    强制输出为无符号8位或带符号的16位立体声。

    aformat=sample_fmts=u8|s16:channel_layouts=stereo
    

    26.14 agate

    A gate主要用于减少信号的下部分。这种信号处理减少了有用信号之间的干扰噪声。

    通过检测低于所选水平阈值的体积并将其除以用比率设定的因子来完成门控。本底噪声通过范围设定。因为对信号的精确操纵会导致波形失真,所以可以随时间推移降低。这是通过设置攻击和释放来完成的。

    攻击确定在发生任何减少之前信号必须下降到阈值以下的时间,并且释放设置信号必须超过阈值的时间以再次减少减少。比所选择的攻击时间更短的信号将保持不变。

    level_in
    

    在过滤之前设置输入级别。默认值为1。允许范围为0.01562564

    range
    

    设置信号低于阈值时的增益降低水平。默认值为0.06125。允许范围为01

    threshold
    

    如果信号超过此水平,则释放增益减少。默认值为0.125。允许范围为01

    ratio
    

    设置信号减少的比率。默认值为2。允许范围为19000

    attack
    

    在增益减少停止之前,信号必须超过阈值的毫秒数。默认值为20毫秒。允许范围为0.019000

    release
    

    在减少再次增加之前信号必须降至阈值以下的毫秒数。默认值为250毫秒。允许范围为0.019000

    makeup
    

    设定处理后的信号放大量。默认值为1。允许范围为164

    knee
    

    使尖锐的膝盖在阈值附近弯曲,以更轻柔地进入增益减少。默认值为2.828427125。允许范围为18

    detection
    

    选择是否应该采取确切的信号进行检测,或选择rms。默认值是rms。可以是peakrms

    link
    

    选择所有通道之间的平均水平或更大的通道是否会影响减少。默认值是average。可以是average还是maximum

    26.15 aiir

    应用任意无限脉冲响应滤波器。

    它接受以下参数:

    z
    

    设置分子/零系数。

    p
    

    设置分母/极点系数。

    k
    

    设置渠道收益。

    dry_gain
    

    设置输入增益。

    wet_gain
    

    设置输出增益。

    f
    

    设置系数格式。

    格式 解释
    tf 转换功能
    zp Z平面零点/极点,笛卡儿(默认)
    pr Z平面零点/极点,极弧度
    pd Z平面零点/极点,极度
    r
    

    设置一种处理。 可以是d - directs - serial cascading。 默认是s

    e
    

    设置过滤精度。

    精度 解释
    dbl 双精度浮点(默认)
    flt 单精度浮点数
    123-132 32位整数
    I16 16位整数

    tf格式的系数由空格分隔并按升序排列。

    zp格式的系数用空格分隔,系数的顺序无关紧要。 zp格式的系数是具有i虚数单位的复数。

    可以为每个通道提供不同的系数和增益,在这种情况下使用'|'来分离系数或增益。 最后提供的系数将用于所有剩余的通道。

    26.15.1 示例

    5000Hz的环境下应用2极椭圆形凹口,48000 Hz采样率:

    aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
    

    与上面相同但是采用zp格式:

    aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
    

    26.16 alimiter

    限制器可防止输入信号超过所需阈值。此限制器使用先行技术来防止信号失真。这意味着信号处理后会有一个小延迟。请记住,它产生的延迟是您设置的攻击时间。

    过滤器接受以下选项:

    level_in
    

    设置输入增益。默认值为1

    level_out
    

    设置输出增益。默认值为1

    limit
    

    不要让高于此水平的信号通过限制器。默认值为1

    attack
    

    限制器将在这段时间内以毫秒为单位达到衰减水平。默认值为5毫秒。

    release
    

    在这个毫秒数内从限制到衰减1.0回来。默认值为50毫秒。

    asc
    

    当总是需要减少增益时,ASC``负责释放到平均减少水平而不是在释放时间内减少0`。

    asc_level
    

    选择ASC对发布时间的影响程度,0表示发布时间几乎没有变化,而1表示发布时间较长。

    asc_level
    

    自动电平输出信号。默认值已启用。如果启用,则将音频标准化为0dB

    根据拾取的设置,建议在应用此滤镜之前使用aresample对输入进行2x4x上采样。

    26.17 allpass

    应用具有中心频率(Hz)频率和滤波器宽度宽度的双极全通滤波器。 全通滤波器将音频的频率改变为相位关系,而不改变其频率与幅度的关系。

    过滤器接受以下选项:

    frequency, f
    

    设置频率,单位为Hz

    width_type,t
    

    设置方法以指定过滤器的带宽。

    参数 解释
    h 赫兹
    q Q-因子
    o 八度
    s
    k 千赫
    width, w
    

    width_type为单位指定过滤器的带宽。

    channels, c
    

    指定要过滤的通道,默认情况下会过滤所有可用的通道。

    26.17.1 命令

    此筛选器支持以下命令:

    frequency, f
    

    改变全通频率。 该命令的语法是:frequency

    width_type,t
    

    更改allpass width_type。 该命令的语法是:width_type

    width, w
    

    改变全通宽度。 该命令的语法是:width

    26.18 aloop

    循环音频样本。

    过滤器接受以下选项:

    loop
    

    设置循环次数。 将此值设置为-1将导致无限循环。 默认值为0

    size
    

    设置最大样本数。 默认值为0

    start
    

    设置第一个循环样本。 默认值为0

    26.19 amerge

    将两个或多个音频流合并为单个多通道流。

    过滤器接受以下选项:

    inputs
    

    设置输入数量。默认值为2

    如果输入的通道布局是不相交的,因此是兼容的,则输出的通道布局将相应地设置,并且必要时将重新排序通道。如果输入的通道布局不是不相交的,则输出将具有第一个输入的所有通道,然后是第二个输入的所有通道,按顺序,输出的通道布局将是对应于频道总数。

    例如,如果第一个输入是2.1(FL + FR + LF),第二个输入是FC + BL + BR,那么输出将是5.1,通道按以下顺序排列:a1,a2,b1, a3,b2,b3a1是第一个输入的第一个通道,b1是第二个输入的第一个通道)。

    另一方面,如果两个输入都是立体声,输出通道将按默认顺序:a1,a2,b1,b2,并且通道布局将任意设置为4.0,这可能是也可能不是预期值。

    所有输入必须具有相同的采样率和格式。

    如果输入的持续时间不同,则输出将以最短的时间停止。

    26.19.1 示例

    • 将两个单声道文件合并为立体声流:

        amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
      
    • input.mkv中假设1个视频流和6个音频流进行多次合并:

        ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
      

    26.20 amix

    将多个音频输入混合到一个输出中。

    请注意,此过滤器仅支持浮点样本(amergepan音频过滤器支持多种格式)。 如果amix输入具有整数样本,则将自动插入aresample以执行到float样本的转换。

    例如:

    ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
    

    3个输入音频流混合到单个输出,其持续时间与第一个输入相同,并且丢失转换时间为3秒。

    它接受以下参数:

    inputs
    

    输入数量。 如果未指定,则默认为2

    duration
    

    如何确定流的结尾。

    模式 解释
    longest 最长输入的持续时间。 (默认)
    shortest 最短输入的持续时间。
    first 第一次输入的持续时间。
    dropout_transition
    

    输入流结束时卷重新规范化的转换时间(以秒为单位)。 默认值为2秒。

    weights
    

    将每个输入音频流的权重指定为序列。 每个重量由空间分隔。 默认情况下,所有输入的权重相同。

    相关文章

      网友评论

        本文标题:FFplay文档解读-17-音频过滤器二

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