如何在ffmpeg中的视频上添加文字叠加?
即给定视频“ video1.flv”,我如何在整个视频中添加“ StackOverflow”文本,该文本位于屏幕中间,带有白色文本和边框?
如何在ffmpeg中的视频上添加文字叠加?
即给定视频“ video1.flv”,我如何在整个视频中添加“ StackOverflow”文本,该文本位于屏幕中间,带有白色文本和边框?
Answers:
drawtext
在ffmpeg中使用视频过滤器:
ffmpeg -i input.mp4 -vf drawtext="fontfile=/path/to/font.ttf: \
text='Stack Overflow': fontcolor=white: fontsize=24: box=1: boxcolor=black@0.5: \
boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2" -codec:a copy output.mp4
该@0.5
控制文本框的不透明度。在此示例中,将其设置为50%。您可以删除,@0.5
并且不会透明。
-codec:a copy
将流式复制(重新混合)音频,并避免重新编码。
绘图文本过滤器的替代方法是使用ASS或SRT字幕,尤其是在需要定时文本或软字幕的情况下。
如果要更新或更改文本,请参阅此过滤器的textfile
和reload
选项。
此过滤器要求您ffmpeg
使用进行编译--enable-libfreetype
。如果得到,No such filter: 'drawtext'
它可能会丢失--enable-libfreetype
。ffmpeg
可用的大多数静态构建都支持此功能,因此请参见FFmpeg下载页面以获取链接。
有关更多选项和示例,请参见绘画文本过滤器文档。
ffmpeg
需要使用构建--enable-libfreetype
。
--with-libefreetype
给install命令。
--with-freetype
-vf "scale=1920:1080,drawtext=..."
注意”的形式,逗号(,
)连接过滤器。您正在执行的命令中缺少逗号。这是您在android中实现ffmpeg命令的问题。