使用 ffmpeg 发出部分音频文件的哔哔声

Posted

技术标签:

【中文标题】使用 ffmpeg 发出部分音频文件的哔哔声【英文标题】:Beeping out portions of an audio file using ffmpeg 【发布时间】:2021-11-23 07:12:16 【问题描述】:

我正在尝试使用 ffmpeg 来消除音频文件的某些部分(例如 10-15 和 20-30)。但是只有第一部分(10-20)会发出哔哔声,而下一部分会静音。

ffmpeg -i input.mp3 -filter_complex "[0]volume=0:enable='between(t,10,15)+between(t,20,30)'[main];sine=d=5:f=800,adelay=10s,pan=stereo|FL=c0|FR=c0[beep];[main][beep]amix=inputs=2" output.wav

使用this作为我的参考,但无法取得太大进展。

编辑:嗯,sine=d=5 明确提到持续时间为 5(我的错)。似乎此命令可用于仅向一个特定部分添加蜂鸣声,我怎么可能更改它以将蜂鸣声添加到具有不同持续时间的不同部分。

【问题讨论】:

【参考方案1】:
ffmpeg -i input.mp3 -af "volume=enable='between(t,5,10)':volume=0[main];sine=d=5:f=800,adelay=5s,pan=stereo|FL=c0|FR=c0[beep];[main][beep]amix=inputs=2,
volume=enable='between(t,15,20)':volume=0[main];sine=d=5:f=800,adelay=15s,pan=stereo|FL=c0|FR=c0[beep];[main][beep]amix=inputs=2, volume=enable='between(t,40,50)':volume=0[main];sine=d=10:f=800,adelay=40s,pan=stereo|FL=c0|FR=c0[beep];[main][beep]amix=inputs=2" output.wav

上面的代码会发出哔哔声5-1015-2040-50

这似乎有效。用 ,(逗号)分隔不同的哔声设置并在所有 3 个位置进行更改:betweensine=d=x 其中 x 似乎是持续时间,adelay=ys 其中 y 是延迟,表示哔声开始的时间。所以介于两者之间的是(t, y, y+x)

参考:Mute specified sections of an audio file using ffmpeg 和 FFMPEG:Adding beep sound to another audio file in specific time portions

很想知道一种更简单/方便的方法。所以我不会将此标记为答案。

【讨论】:

以上是关于使用 ffmpeg 发出部分音频文件的哔哔声的主要内容,如果未能解决你的问题,请参考以下文章

从 MATLAB 中的波形音频文件中去除噪声

ffmpeg 用循环音频替换部分音频文件

在 Vaadin 应用程序中发出哔声

使用ffmpeg 操作音频文件前后部分静音移除.

如何让android只在一只耳朵里发出哔哔声?

使用 ffmpeg 从/到位置剪切音频