首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在10秒后用ffmpeg过滤音量减少音频,持续2秒?

如何在10秒后用ffmpeg过滤音量减少音频,持续2秒?
EN

Stack Overflow用户
提问于 2020-08-19 10:52:49
回答 1查看 815关注 0票数 0

我使用这个命令来静音:

代码语言:javascript
复制
ffmpeg -i input.mp4 -af "volume=enable ='between(t,10,15)':volume=0, volume=enable ='between(t,20,25)':volume=0, volume=enable ='between(t,30,35)':volume=0, volume=enable ='between(t,40,45)':volume=0, volume=enable ='between(t,50,55)':volume=0" -c:v copy -c:a aac -b:a 192K output.mp4

我如何重复或循环这个过滤器而不用一遍又一遍地写它呢?

例如,这命令在特定秒后放大视频:

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "zoompan=z='if(lte(mod(time,6),3),zoom+1.5,zoom-3)':x='iw/2-(iw/zoom)/2':y='ih/2-(ih/zoom)/2':d=1:fps=24" -c:v libx264 -crf 20 -preset:v ultrafast -profile:v high -g 60 -threads 2 -c:a aac -b:a 192K output.mp4

我如何使用这样的音量过滤器来静音后,特定的秒?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-19 14:03:15

提示:您可以通过添加一个启用表达式中的多个时间范围或条件,例如:

ffmpeg -i input.mp4 -af "volume=volume=0:enable ='between(t,10,15)+between(t,20,25)+between(t,30,35)+between(t,40,45)+between(t,50,55)'" -c:v copy -c:a aac -b:a 192K output.mp4

如果模式是规则的,例如“每10秒,持续2秒”,则通常使用mod函数,它通过右操作数返回左操作数的其余部分。然后将其括起来,这是一个类似于lte的比较函数(小于或等于)

在这种情况下,

ffmpeg -i input.mp4 -af "volume=volume=0:enable ='lte(mod(t\,10)\,2)'" -c:v copy -c:a aac -b:a 192K output.mp4

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63485394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档