FFmpeg添加多个drawtext失效:仅第二个文本生效求助
解决FFmpeg仅生效第二段文字的问题
嘿,我知道你为啥只看到第二段文字效果啦!问题出在你用了两个独立的 -vf 参数——FFmpeg 会把第二个 -vf 当成全新的滤镜链,直接覆盖掉第一个的设置,所以第一段文字的效果就被忽略了。
修正后的代码
把两个 drawtext 滤镜合并到同一个 -vf 选项里,用逗号分隔(注意去掉第一个 drawtext 后面多余的逗号):
ffmpeg -i input.mp4 -vf "drawtext=text='Stack Overflow': fontcolor=white: borderw=2: fontfile=Arial Black: fontsize=w*0.04: x=(w-text_w)-(w*0.04): y=(h-text_h)-(w*0.04): enable='between(t,0,6)', drawtext=text='Stack Overflow': fontcolor=white: borderw=2: fontfile=Arial Black: fontsize=w*0.04: x=(w-text_w)/2: y=(h-text_h)/2: enable='between(t,7,10)'" -codec:a copy output2.mp4
额外优化小技巧
如果你的视频时长不是固定10秒,想让第二段文字自动在最后3秒显示,可以把第二个 enable 的条件改成基于视频总时长的表达式,不用手动算时间:
enable='between(t, duration-3, duration)'
这样不管视频是1分钟还是5分钟,第二段文字都会精准在最后3秒出现~
内容的提问来源于stack exchange,提问作者Biswajit Chopdar
相关产品推荐
相关产品推荐

