【问题标题】:Multiple fadeIn/fadeOut effects in one audio file with ffmpeg使用 ffmpeg 在一个音频文件中添加多个淡入/淡出效果
【发布时间】:2014-06-06 18:53:48
【问题描述】:

我在为一个音频文件添加多个淡入淡出效果时遇到了一些问题。当我尝试使用这样的命令时:

ffmpeg -y -i /home/user/video/test/sound.mp3 -af "afade=t=in:ss=0:d=3,afade=t=out:st=7:d=3,afade=t=in:st=10:d=3,afade=t=out:st=17:d=3,afade=t=in:st=20:d=3,afade=t=out:st=27:d=3" /tmp/test.mp3

那么我的输出音频文件只应用了一次 fadeinfadeout。不会应用所有下一个效果。有什么方法可以将多个淡入淡出效果应用到同一个音频文件?另外,这个命令中的ssst参数有什么区别?

【问题讨论】:

  • 关于参数:st ("start time") 指定效果的开始时间,以秒为单位,ss ("start sample") 在音频样本中相同(通常为 44100每秒检查一次ffprobe)。来源:ffmpeg filters documentation.

标签: audio ffmpeg


【解决方案1】:

问题在于,在淡出音频后,您正试图淡入静音。

解决方法是在您想要开始淡入时禁用淡出过滤器。

您可以使用Timeline Editing 来实现此目的,以在特定时间内启用过滤器。

以下示例运行良好:

ffmpeg -i input.mp3 -af "afade=enable='between(t,0,3)':t=in:ss=0:d=3,afade=enable='between(t,7,10)':t=out:st=7:d=3,afade=enable='between(t,10,13)':t=in:st=10:d=3,afade=enable='between(t,13,16)':t=out:st=13:d=3" -t 16 output.mp3

【讨论】:

  • 请注意,开始时间参数命名为“st”而不是“ss”,如 2015 年的答案所述
  • @BobRoss、stssdocs 中针对 afade 过滤器所述的不同参数。 ss 代表开始样本,st 代表开始时间。
  • 似乎在答案中您的意思是使用开始时间而不是开始样本
  • 只有在整个视频中应用淡入淡出时才有效,即。应用淡入淡出的部分之间没有间隙。
【解决方案2】:

适用于我的 ffmpeg 2.5.2。

我正在使用fade in and fade out audio filter,持续时间均为 3 秒。

ffmpeg -i audio.mp3 -af 'afade=t=in:ss=0:d=3,afade=t=out:st=27:d=3' out.mp3

我建议升级您的 ffmpeg,因为这可能是一个错误。更多信息in the docs

【讨论】:

  • 如果我理解正确的话,@farw 对这样的命令没有任何问题:应用一个淡入和一个淡出效果。但是,如果您之后添加更多它们,它们将不再适用。
  • 你能解释一下参数或链接到它们记录的地方吗?
【解决方案3】:

看这里:ffmpeg volume filters

volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame

完整的命令:

ffmpeg -i movie.wav -filter volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame modified-movie.wav

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    相关资源
    最近更新 更多