ffmpeg如何将多个drawtext添加到一个输入视频

时间:2018-05-22 04:16:03

标签: ffmpeg

我需要在视频中添加两个文字。第一个文本显示在前6秒的右下方,第二个文本显示在视频中心的最后3秒。

以下是我的代码:

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)'", -vf 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

运行上面的代码时没有任何错误,但在输出文件中,只应用了第二个drawtext。

1 个答案:

答案 0 :(得分:3)

drawtext 应该放在一个-vf中(使用“[in] / [out]”是可选的):

ffmpeg -i input.m4 -vf "[in]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 output2.mp4

10.47 drawtext : ffmpeg documentation