使用drawtext
官方文档:FFmpeg Filters Documentation
添加一行文本:
添加文字:
ffmpeg -i original.mp4 -vf drawtext=fontcolor=black:fontsize=50:text='Hello World':x=0:y=100 -y out.mp4
结果展示:
将文本放到图像的中间:
现在我们想同时添加多行文本:
可以使用[in]标记并使用逗号列出每个文本,从而在一个文件上指定多个文本。 如果通过其各自的定位方法来定向每个绘画文本,则可以使用多行。 在下面的示例中,命令行如下所示(将第一行放在屏幕中间,然后将每个后续行放下25个像素):
ffmpeg -i test_in.avi -vf "[in]drawtext=fontsize=40:fontcolor=black:text='hello world':x=(w)/2:y=(h)/2, drawtext=fontsize=40:fontcolor=red:text='hellow':x=(w)/2:y=((h)/2)+25, drawtext=fontsize=40:fontcolor=yellow:text='world~':x=(w)/2:y=((h)/2)+50[out]" -y test_out.avi
结果:
另一种方式:
ffmpeg -i input.avi -vf "[in]drawtext=fontsize=20:text='hello
world':x=(w)/2:y=(h)/2:fontcolor=white[out]" -y out.mp4
hello world之间加了个enter…
参考: https://stackoverflow.com/questions/8213865/ffmpeg-drawtext-over-multiple-lines