FFmpeg- Drawtext样式- 加粗,斜体,下划线

8

我们如何在drawtext滤镜中指定样式?例如,使用常规字体绘制“Hello”,但它应该是粗体、斜体和带下划线的。这可能吗?

2个回答

6
也许这个答案有点晚了,但是从FFMPEG的文档中可以看到:http://ffmpeg.org/ffmpeg-all.html

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

drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'

当然,您需要配置fontconfig文件,并在字体位置中设置所需的字体(请注意:必须拥有您需要的所有样式),然后使用字体系列名称运行drawtext并跟随着':style='。

例如:

-vf "drawtext='fontfile=DejaVuSans\:style=ExtraLight:text=FFmpeg'"

这在控制台和php shell exec命令中对我很有用。您可以使用任何字体样式,只要(针对您选择的样式和字体系列),字体目录中有遵循此规则的字体文件: 字体系列名称-样式名称。我真心希望这能帮到您!


3
注意,drawtext 参数都需要用单引号括起来。这很重要。对我来说,相当于 -vf "drawtext='fontfile…\:style…'" 是可以工作的,但是 -vf "drawtext=fontfile…\:style…" 失败了,-vf "drawtext=fontfile…\\:style…" 也失败了,但是 -vf "drawtext=fontfile…\\\\:style…" 又可以工作了。另外,似乎 fontconfig 关键字只能出现在 fontfile= 的值中,而不能出现在其他值中,如 font= - Jim DeLaHunt
对我来说不起作用:“选项'style'未找到” - JavaRunner
@JavaRunner,我遇到了同样的 [Parsed_drawtext_0 @ 0x7fd5f6706340] Option 'style' not found 错误,问题是我忘记在正确的位置上放置 '。请查看你上面的评论,仔细比较一下你的命令。 - Mint
如何使用“下划线”,它从未对我起作用,我成功使用了斜体或粗体,但不是下划线。 - Ricardo Bohner

3

您可以指定目标字体:

drawtext= fontfile=fonts/path/Arial-Bold.ttf :text=FFmpeg

字体家族应该为您想使用的每种风格拥有适当的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接