ffmpeg-drawtext 样式-粗体、斜体、下划线

hac*_*ack 5 ffmpeg

我们如何在 drawtext 过滤器中指定样式。例如,以常规字体绘制“Hello”,但应为粗体、斜体和下划线。这可能吗?

thv*_*s86 6

也许这个答案已经晚了,但是,来自 FFMPEG 文档:http://ffmpeg.org/ffmpeg-all.html

使用 fontconfig 设置字体。请注意,冒号需要转义。

drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
Run Code Online (Sandbox Code Playgroud)

当然,您必须配置fontconfig文件,在字体位置设置所需的字体(注意拥有所需的所有样式),然后使用字体系列名称后跟“ :style= ”运行绘图文本。

例子:

-vf "drawtext='fontfile=DejaVuSans\:style=ExtraLight:text=FFmpeg'"
Run Code Online (Sandbox Code Playgroud)

这在控制台和 php shell exec 命令中对我有用。您可以使用任何字体样式,只要(对于您选择的样式和字体系列),字体目录中有一个遵循以下规则的字体文件:FontFamilyName - StyleName。我真的希望这有帮助!

  • 另请注意,“drawtext”参数均用单引号引起来。这很重要。对我来说,相当于 `-vf "drawtext='fontfile...\:style...'"` 有效,`-vf "drawtext=fontfile...\:style..."` 失败,`-vf "drawtext=fontfile...\\ :style..."` 失败,但 `-vf "drawtext=fontfile...\\\\:style..."` 再次工作。此外,看起来 **fontconfig** 关键字可能只出现在 **fontfile=** 值中,而不出现在 **font=** 等其他值中。 (3认同)