使用 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-10
、15-20
和40-50
这似乎有效。用 ,(逗号)分隔不同的哔声设置并在所有 3 个位置进行更改:between
、sine=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 发出部分音频文件的哔哔声的主要内容,如果未能解决你的问题,请参考以下文章