视频ffmpeg上的文字


76

如何在ffmpeg中的视频上添加文字叠加?

即给定视频“ video1.flv”,我如何在整个视频中添加“ StackOverflow”文本,该文本位于屏幕中间,带有白色文本和边框?


这里。nr。6
bitWorking

22
@bitWorking-我看到您的评论已经有3年了,但是我仍然恳求您不要侮辱和浪费stackoverflow社区成员的链接,不要混淆您的“让我为您找到Google”链接。特别是当您介绍递归时(我是通过Google搜索来到这里的)。另外,使用URL缩短可以隐藏潜在的恶意软件或垃圾邮件链接,因为您将不知道所指向的位置。
FooF

Answers:


156

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字幕,尤其是在需要定时文本或软字幕的情况下。

  • 如果要更新或更改文本,请参阅此过滤器的textfilereload选项。

  • 此过滤器要求您ffmpeg使用进行编译--enable-libfreetype。如果得到,No such filter: 'drawtext'它可能会丢失--enable-libfreetypeffmpeg可用的大多数静态构建都支持此功能,因此请参见FFmpeg下载页面以获取链接。

  • 有关更多选项和示例,请参见绘画文本过滤器文档


1
@NoahTernullo还可以使用strftime选项和“ pts”变量。就使其在底部逐渐变细而言,您可能可以使用一些函数根据pts或帧号对x变量值进行更改。
rogerdpack 2015年

1
@chovy您ffmpeg需要使用构建--enable-libfreetype
llogan

2
fyi,对于使用brew安装的用户,可以将该标志传递--with-libefreetype给install命令。
chovy

7
@chovy我认为您提到的自制选项应该是--with-freetype
Rico Picone

1
@VivekThummar必须采用“-vf "scale=1920:1080,drawtext=..."注意”的形式,逗号(,)连接过滤器。您正在执行的命令中缺少逗号。这是您在android中实现ffmpeg命令的问题。
洛根
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.