FFmpeg中不同fadein/fadeout曲线的差异及选型咨询
FFmpeg音频淡入淡出曲线全解析:差异、听感与场景推荐
我经常用FFmpeg处理音频,对这些fade曲线的特性摸得比较透,接下来帮你拆解每个曲线的形态、听感,还有适合的场景,顺便理清和Audacity的对应关系。
一、各曲线的视觉形态与实际听觉效果
每个曲线的增益变化逻辑都藏在你贴的代码里,结合公式和实际使用经验,它们的表现如下:
- tri(三角曲线,默认):线性增益变化,视觉是一条笔直的斜线。听感上是最“朴实”的淡入/淡出,音量匀速升降,没有明显的缓起或缓落。用来避免爆音完全足够,短时长fade可能会有点生硬,但常规场景下很实用。
- qsin(1/4正弦曲线):公式是
sin(gain * π/2),视觉上是从原点开始的上凸曲线——前期增益涨得慢,后期逐渐加快。听感上淡入时声音像“慢慢苏醒”,先轻声浮现,再逐渐拉满音量;淡出则是先快速降一点,再缓慢收尾,整体很柔和,适合需要细腻过渡的场景。 - iqsin(反转1/4正弦曲线):公式是
(2/π)*asin(gain),和qsin完全反转,视觉是下凸曲线——前期增益飙升快,后期放缓。听感上淡入时声音很快接近正常音量,然后平稳拉满;淡出则是先缓慢衰减,再快速消失,适合需要快速切入主体但收尾柔和的场景(比如旁白接背景音乐)。 - hsin(半正弦曲线):公式是
(1 - cos(gain*π))/2,视觉是对称的S型曲线,中间段增益变化最快,两端慢。听感上淡入淡出都是“柔起柔落”,过渡极其自然,是专业音频制作里最常用的“安全牌”,几乎不会出错。 - ihsin(反转半正弦曲线):公式是
(1/π)*acos(1-2*gain),和hsin反转,中间段增益变化最慢,两端快。听感上淡入时快速升到中间音量,再缓慢拉满;淡出则是先快速降到中间,再慢慢消失,这种曲线比较小众,适合追求特殊艺术效果的场景。 - esin(指数正弦曲线):公式是
1 - cos(π/4 * ((2gain-1)³ +1)),结合了立方和正弦的特性,视觉是比hsin更平缓的S型,前期上升更慢。听感上淡入淡出的柔度比hsin更强,几乎听不到任何拐点,适合需要极致细腻的过渡(比如电影里的背景音渐入)。 - exp(指数曲线):公式是
exp(-11.51*(1-gain)),视觉是下凸曲线,前期增益几乎没变化,后期突然飙升。听感上淡入时声音“悄无声息”地慢慢浮现,直到最后一刻才达到正常音量;淡出则是快速衰减后趋于平缓,适合需要极低存在感的淡入场景。 - log(对数曲线):公式是
av_clipd(1 + 0.2*log10(gain), 0,1),视觉是上凸曲线,前期增益上升快,后期几乎停滞。听感上淡入时声音迅速拉到接近正常音量,再一点点微调满;淡出则是先缓慢衰减,最后快速消失,适合快速切入主体,但要注意低增益段可能有轻微卡顿感。 - par(抛物线):公式是
1 - sqrt(1 - gain),下凸曲线,类似exp但没那么极端,前期增益慢,后期加快。听感比exp温和,淡入不会太拖沓,适合想要柔和但不拖沓的场景。 - ipar(反转抛物线):公式是
1 - (1-gain)²,上凸曲线,前期增益快,后期放缓,类似iqsin但更线性。听感上淡入快速启动,平稳收尾,比iqsin更自然。 - qua(二次曲线):公式是
gain²,上凸曲线,前期增益慢,后期加快,斜率比par更陡。听感上淡入时声音慢慢起来,后半段加速,适合需要递进感的淡入场景。 - cub(三次曲线):公式是
gain³,上凸曲线,比qua更陡,前期增益极慢,后期飙升。听感上淡入的“唤醒感”很强,适合从完全静音慢慢浮现的场景(比如清晨背景音渐入)。 - squ(平方根曲线):公式是
sqrt(gain),下凸曲线,前期增益快,后期放缓,类似ipar但更平缓。听感上淡入快速启动,平稳过渡到正常音量,非常自然。 - cbr(立方根曲线):公式是
cbrt(gain),下凸曲线,比squ更陡,前期增益更快,后期更平缓。听感上淡入几乎瞬间达到一半音量,再慢慢拉满,适合快速切入但不突兀的场景。 - dese(双指数seat曲线):分段函数,0.5前是
cbrt(2gain)/2,0.5后是1 - cbrt(2(1-gain))/2,视觉是中间有拐点的平缓曲线,两端变化慢,中间稍快。听感上淡入淡出都是“柔上加柔”,没有任何突兀感,适合高端音频制作的细腻过渡。 - desi(双指数sigmoid曲线):分段函数,0.5前是
(2gain)³/2,0.5后是1 - (2(1-gain))³/2,视觉是中间有拐点的S型,两端变化慢,中间快。听感接近hsin但拐点更明显,适合需要明确过渡阶段的场景。
二、场景推荐(含防爆音建议)
你提到主要需求是避免爆音,交叉淡化可能多余,那分场景给你建议:
1. 基础防爆音场景
如果只是为了避免突然启停的爆音,**默认的tri(线性)**就完全够用——线性变化不会出现增益突变,完美规避爆音问题。如果想要更柔和一点,**hsin(半正弦)**是更稳妥的选择,它的对称过渡几乎不会有任何生硬感,是专业场景的“万金油”。
2. 追求柔和过渡的场景
- 淡入:选exp(指数)或dese(双指数seat),前者适合极致低调的渐入,后者适合细腻的柔化过渡;
- 淡出:选qsin(1/4正弦)或hsin,收尾自然,不会有突然消失的感觉。
3. 快速切入/收尾的场景
- 淡入:选iqsin(反转1/4正弦)或squ(平方根),能快速进入主体声音,同时保持收尾柔和;
- 淡出:选log(对数)或ipar(反转抛物线),快速收尾但不突兀。
4. 交叉淡化场景(若需要)
如果之后用到交叉淡化,推荐用hsin或dese——它们的对称特性能让两个音频的音量过渡平滑,不会出现音量波动;也可以用qsin+iqsin的组合(一个淡入用qsin,另一个淡出用iqsin),过渡会更自然。
三、与Audacity曲线的对应关系
Audacity的预设曲线和FFmpeg的对应关系如下,帮你快速匹配:
- Audacity「Linear Fade」= FFmpeg
tri - Audacity「Logarithmic Fade In」= FFmpeg
log(前期快后期慢的淡入) - Audacity「Logarithmic Fade Out」= FFmpeg
exp(前期慢后期快的淡出) - Audacity「Sinusoidal Fade」= FFmpeg
hsin(对称S型柔化曲线) - Audacity「Exponential Fade In」= FFmpeg
exp(前期慢后期快的淡入) - Audacity「Exponential Fade Out」= FFmpeg
log(前期快后期慢的淡出)
内容的提问来源于stack exchange,提问作者siods333333




