配置FFmpeg
构建时,可以使用--disable-filters
禁用任何现有过滤器。 配置输出将显示构建中包含的音频过滤器。
以下是当前可用音频过滤器的说明。
压缩器主要用于减小信号的动态范围。 特别是现代音乐大多以高比率压缩以改善整体响度。 这样做是为了让听众获得最高的关注,"fatten
"声音,并为track
带来更多的"power
"。 如果信号被压缩得太多,之后可能听起来暗淡或"dead
",或者它可能开始 "pump
"(这可能是一种强大的效果,但也可以完全破坏track
)。 正确的压缩是达到专业声音的关键,是混音和母带制作的高级艺术。 由于其复杂的设置,可能需要很长时间才能获得这种效果的正确感觉。
通过检测高于所选水平threshold
(阈)值的体积并将其除以用ratio
率设定的因子来完成压缩。因此,如果将阈值设置为-12dB
并且信号达到-6dB
,则比率为2:1
将导致信号为-9dB
。因为对信号的精确操纵会导致波形失真,所以可以随时间减小。这是通过设置“Attack
”和“Release
”来完成的。attack
确定在发生任何减少之前信号必须超过阈值的时间长度,并且release
设置信号必须降至阈值以下的时间以再次减少减少。比所选择的攻击时间更短的信号将保持不变。之后可以通过makeup
设置来弥补信号的整体减少。因此,将信号的峰值压缩大约6dB
并将化妆值提高到该水平会产生两倍于信号源的信号。为了在压缩中获得更柔和的进入,knee
使硬边缘在所选分贝范围内的阈值处变平。
过滤器接受以下选项:
level_in
设置输入增益。默认值为1
。范围介于0.015625
和64
之间。
threshold
如果流的信号超过此水平,则会影响增益降低。默认情况下为0.125
。范围介于0.00097563
和1
之间。
ratio
设置信号减少的比率。1:2
表示如果电平比阈值高出4dB
,则在降低后仅为2dB
。默认值为2
。范围介于1
和20
之间。
学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
attack
在增益降低开始之前信号必须升高到阈值以上的毫秒数。默认值为20
。范围介于0.01
和2000
之间。
release
在减少之前信号必须降至阈值以下的毫秒数再次减少。默认值为250
。范围介于0.01
和9000
之间。
makeup
设置处理后信号放大的数量。默认值为1
。范围是1
到64
。
knee
使尖锐的knee
在阈值附近弯曲,以更轻柔地进入增益减少。默认值为2.82843
。范围在1
到8
之间。
link
选择输入流的所有通道之间的平均水平或输入流的较大(最大)通道是否会影响减少。默认值是平均值。
detection
如果是峰值,则应该采取确切的信号;如果是均方根,则应该采用RMS
。默认值是rms
,大多数更平滑。
mix
输出中使用压缩信号的数量。默认值为1
.范围介于0
和1
之间。
简单的音频动态范围压缩/扩展滤波器。
过滤器接受以下选项:
contrast
设置对比度。 默认值为33
。允许的范围介于0
到100
之间。
将输入音频源不变地复制到output
。 这主要用于测试目的。
将交叉淡入淡出从一个输入音频流应用到另一个输入音频流。 交叉淡入淡出在第一个流的末尾附近应用指定的持续时间。
过滤器接受以下选项:
nb_samples,ns
指定交叉渐变效果必须持续的样本数。 在交叉淡入淡出效果结束时,第一个输入音频将完全静音。 默认值为44100
。
duration, d
指定交叉淡入淡出效果的持续时间。 请参阅(ffmpeg-utils
)接受语法的持续时间语法。 默认情况下,持续时间由nb_samples
确定。 如果设置,则使用此选项而不是nb_samples
。
overlap, o
首先应该与第二个流开始流结束重叠。 默认值已启用。
curve1
设置第一个流的交叉淡入淡出过渡曲线。
curve2
设置第二个流的交叉淡入淡出过渡曲线。
有关可用曲线类型的说明,请参阅afade
过滤器说明。
交叉淡入淡出从一个输入到另一个输入:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
从一个输入交叉淡入淡出但没有重叠:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
降低音频位分辨率。
该过滤器是具有增强功能的bit crusher
。bit crusher
用于可听地减少采样音频信号的位数。这根本不会改变位深度,只会产生效果。比特深度减小的材料听起来更苛刻和"digital
"。该滤波器甚至可以舍入到连续值而不是离散位深度。另外,它具有D/C
偏移,这导致信号的下半部分和上半部分的不同压碎。抗锯齿设置能够产生 "softer
" 的柔和
声音。
该滤波器的另一个特征是对数模式。此设置从位之间的线性距离切换到对数位。结果是更加"natural
"的发声crusher
,例如它不会接收低信号。人耳具有对数感,因此这种crushing
更令人愉悦。对数crushing
也能够消除锯齿。
过滤器接受以下选项:
level_in
设置级别。
level_out
设置等级。
bits
设置位减少。
mix
设定混合量。
mode
可以是线性的:lin
或对数的:log
。
dc
设置DC。
aa
设置抗锯齿。
samples
设置样品减少量。
lfo
启用LFO
。 默认情况下禁用。
lforange
设置LFO
范围。
lforate
设置LFO
费率。
延迟一个或多个音频通道。
延迟通道中的样本充满了沉默。
过滤器接受以下选项:
delays
设置由|
分隔的每个通道的延迟列表(以毫秒为单位)。 未使用的延迟将被默默忽略。 如果给定延迟的数量小于信道数,则所有剩余信道将不会被延迟。 如果要延迟确切的样本数,请将'S
'附加到数字。
将第一个通道延迟1.5
秒,将第三个通道延迟0.5
秒,并保持第二个通道(以及可能存在的任何其他通道)不变。
adelay=1500|0|500
将第二个通道延迟500
个样本,将第三个通道延迟700
个样本,并保持第一个通道(以及可能存在的任何其他通道)不变。
adelay=0|500S|700S
将回音应用于输入音频。
回声是反射声音,在谈话或喊叫时可以在山脉(有时是大型建筑物)中自然发生; 数字回声效果模拟此行为,通常用于帮助填写单个乐器或人声的声音。 原始信号和反射之间的时间差是延迟,反射信号的响度是衰减。 多个回波可能有不同的延迟和衰减。
接下来的参数的描述如下。
in_gain
设置反射信号的输入增益。 默认值为0.6
。
out_gain
设置反射信号的输出增益。 默认值为0.3
。
delays
设置原始信号和以"|
"分隔的反射之间的时间间隔列表(以毫秒为单位)。 每个延迟的允许范围是(0 - 90000.0)
。默认值是1000
。
decays
设置由"|
"分隔的反射信号的响度列表。 每个衰减的允许范围是(0 - 1.0)
。默认值是0.5
。
让它听起来好像有两倍的实际演奏乐器:
aecho=0.8:0.88:60:0.4
如果延迟非常短,那么它听起来像是一个播放音乐的(金属)机器人:
aecho=0.8:0.88:6:0.4
较长的延迟听起来像山区的露天音乐会:
aecho=0.8:0.9:1000:0.3
与上面相同,但还有一座山:
aecho=0.8:0.9:1000|1800:0.3|0.25
音频强调滤镜创建或恢复直接从LP
或具有不同滤镜曲线的强调CD
获取的材质。 例如。 为了将音乐存储在乙烯基上,必须首先通过滤波器改变信号以平衡该记录介质的缺点。 一旦播放了素材,就必须应用逆滤波器来恢复频率响应的失真。
过滤器接受以下选项:
level_in
设置输入增益。
level_out
设置输出增益。
mode
设置过滤模式。 用于恢复材料使用reproduction
模式,否则使用production
模式。 默认为reproduction
模式。
type
设置过滤器类型。 Selects medium
。 可以是如下所述中的一个:
类型 | 解释 |
---|---|
col | select Columbia |
emi | select EMI |
bsi | select BSI (78RPM) |
riaa | select RIAA |
cd | select Compact Disc (CD) |
50fm | select 50µs (FM) |
75fm | select 75µs (FM) |
50kf | select 50µs (FM-KF) |
75kf | select 75µs (FM-KF) |
根据指定的表达式修改音频信号。
该过滤器接受一个或多个表达式(每个通道一个),它们被评估并且用于修改相应的音频信号。
它接受以下参数:
参数 | 含义 |
---|---|
exprs | 为每个单独的通道设置|分隔表达式列表。 如果输入通道的数量大于表达式的数量,则最后指定的表达式将用于其余输出通道。 |
channel_layout,c | 设置输出通道布局。 如果未指定,则通道布局由表达式数指定。 如果设置为‘same’ ,则默认情况下将使用相同的输入通道布局 |
exprs中的每个表达式都可以包含以下常量和函数:
参数 | 含义 |
---|---|
ch | 当前表达式的通道号 |
n | 评估样本的编号,从0 开始 |
s | 采样率 |
t | 评估样品的时间以秒表示 |
nb_in_channels | |
nb_out_channels | 输入和输出通道数 |
val(CH) | 数字CH 的输入通道的值 |
注意:此过滤器很慢。 为了加快处理速度,建议使用专用过滤器。
音量减半:
aeval=val(ch)/2:c=same
第二个通道的反相:
aeval=val(0)|-val(1)
将淡入/淡出效果应用于输入音频。
接下来的参数的描述如下。
type,t
指定效果类型:in
表示淡入效果,out
表示淡出效果。默认是淡入效果。
start_sample,ss
指定开始应用淡入淡出效果的开始样本的编号。默认值为0
。
nb_samples,ns
指定淡入淡出效果必须持续的样本数。在淡入效果结束时,输出音频将具有与输入音频相同的音量,在淡出过渡结束时输出音频将保持静音。默认值为44100
。
start_time,st
指定淡入淡出效果的开始时间。默认值为0
。必须将值指定为持续时间;接受语法具体请参阅2.3持续时间
。如果设置,则使用start_sample
选项替代。
duration, d
指定淡入淡出效果的持续时间。具体的语法请参阅2.3持续时间
。在淡入效果结束时,输出音频将具有与输入音频相同的音量,在淡出过渡结束时输出音频将保持静音。默认情况下,持续时间由nb_samples
确定。如果设置,请使用nb_samples
选项。
curve
设置淡入淡出过渡曲线。
它接受以下值:
取值 | 解释 |
---|---|
tri | 选择三角形,线性斜率(默认) |
qsin | 选择四分之一的正弦波 |
hsin | 选择一半的正弦波 |
esin | 选择指数正弦波 |
log | 选择对数 |
ipar | 选择倒置抛物线 |
qua | 选择二次方 |
cub | 选择立方体 |
squ | 选择平方根 |
cbr | 选择立方根 |
par | 选择抛物线 |
exp | 选择指数 |
iqsin | 选择倒四分之一的正弦波 |
ihsin | 选择倒半波的正弦波 |
dese | 选择双指数座位 |
desi | 选择双指数sigmoid |
淡入前15秒的音频:
afade=t=in:ss=0:d=15
淡出900秒音频的最后25秒:
afade=t=out:st=875:d=25