如何使用ffmpeg为音频多个指定时间段添加蜂鸣消音效果
ffmpeg多时间段蜂鸣消音实现方法
问题根源
原命令仅生成了1段固定5秒的蜂鸣音频流,仅配置了10秒的启动延迟,只能覆盖第一个10-15秒的时间段,20-30秒的时间段没有对应的蜂鸣音频流输入,因此仅触发了原音静音逻辑,无蜂鸣效果。
适配多时间段的修改方案
针对10-15秒、20-30秒的示例需求,修改后的命令如下:
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[beep1]; \ sine=d=10:f=800,adelay=20s,pan=stereo|FL=c0|FR=c0[beep2]; \ [beep1][beep2]amix=inputs=2[all_beeps]; \ [main][all_beeps]amix=inputs=2:duration=first" \ output.wav
自定义多时间段扩展方法
如果需要添加更多时长不同的时间段,按以下规则修改即可:
- 每个时间段对应新增1条
sine生成指令:d参数设为该时间段的总时长(结束时间-开始时间),adelay参数设为该时间段的开始时间(单位加s),并为其分配独立的输出标签(比如[beep3]、[beep4]) - 修改蜂鸣流合并的
amix滤镜的inputs参数,数值等于你需要的时间段总数 - 同步修改最开头
volume滤镜的enable条件,新增对应between(t,开始时间,结束时间)的判断,多个条件用+连接 - 蜂鸣频率可以按需修改
sine的f参数,默认800Hz是常见的提示蜂鸣频率
内容的提问来源于stack exchange,提问作者Suraj
相关产品推荐
相关产品推荐

