如何将添加双drawtext与指定时段红背景的两条FFmpeg命令合并?
合并FFmpeg命令实现分时段字幕与指定时段红色背景
嘿,这事儿好办!我帮你把两条FFmpeg命令合并成一条,既能实现不同时段的字幕显示,又能精准在7-10秒加上红色背景。合并后的完整命令如下:
ffmpeg -i input.mp4 -f lavfi -i "color=red:s=1280x720" -filter_complex "[1:v]format=yuva420p,colorchannelmixer=aa=0.5[redbg];[0:v][redbg]overlay=x=0:y=0:enable='between(t,7,10)'[bg];[bg]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)'[out]" -codec:a copy output_combined.mp4
核心细节拆解:
- 红色背景的精准控制:我给颜色源添加了透明度处理(
colorchannelmixer=aa=0.5,数值0-1可调,1是完全不透明),然后通过overlay的enable='between(t,7,10)'参数,让红色背景只在7-10秒显示,完美匹配第二个字幕的时段。 - 图层顺序很重要:先把红色背景叠加到原视频上,再叠加字幕,这样字幕会显示在背景之上,不会被遮挡。
- 保留原音频:保留了
-codec:a copy参数,直接复制原视频的音频流,既节省处理时间,又不会损失音频质量。
如果不需要背景透明,直接去掉format=yuva420p,colorchannelmixer=aa=0.5这部分就行,改成[1:v][0:v]overlay=x=0:y=0:enable='between(t,7,10)'[bg]就可以了。
内容的提问来源于stack exchange,提问作者Biswajit Chopdar
相关产品推荐
相关产品推荐

