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

前言

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

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

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

推荐阅读更多精彩内容