Fluent-FFMPEG:能否仅在指定时间后应用音量滤镜?
问题
我编写了如下Fluent-FFMPEG代码:
ffmpeg() .addInput(videoFilepath) .addInput(soundTrackFilepath) .inputOptions("-stream_loop -1") .outputOptions("-shortest") .complexFilter([ { filter: "volume", options: ["0.15"], inputs: "1", } ])
我希望仅在4秒后对音频轨道应用该音量滤镜,请问是否可行?
回答
当然可行,你可以通过给volume滤镜添加enable选项指定生效时机,让音量滤镜从第4秒开始启用即可。
修改后的代码如下:
ffmpeg() .addInput(videoFilepath) .addInput(soundTrackFilepath) .inputOptions("-stream_loop -1") .outputOptions("-shortest") .complexFilter([ { filter: "volume", options: ["0.15"], inputs: "1", enable: 'gte(t,4)' // 当时间t≥4秒时启用该滤镜 } ])
这里的gte(t,4)是FFmpeg的表达式语法:t代表当前时间,gte表示“大于等于”,以此实现仅在4秒后对目标音频轨道应用音量降低的效果。
如果需要更复杂的分段处理,也可以把音频拆分为前4秒原音量段、4秒后降音量段,再将两段拼接,但上述enable的方式更简洁高效。
内容的提问来源于stack exchange,提问作者user14298793
相关产品推荐
相关产品推荐

