我们如何在drawtext滤镜中指定样式?例如,使用常规字体绘制“Hello”,但它应该是粗体、斜体和带下划线的。这可能吗?
我们如何在drawtext滤镜中指定样式?例如,使用常规字体绘制“Hello”,但它应该是粗体、斜体和带下划线的。这可能吗?
使用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命令中对我很有用。您可以使用任何字体样式,只要(针对您选择的样式和字体系列),字体目录中有遵循此规则的字体文件: 字体系列名称-样式名称。我真心希望这能帮到您!
您可以指定目标字体:
drawtext= fontfile=fonts/path/Arial-Bold.ttf :text=FFmpeg
字体家族应该为您想使用的每种风格拥有适当的文件。
drawtext
参数都需要用单引号括起来。这很重要。对我来说,相当于-vf "drawtext='fontfile…\:style…'"
是可以工作的,但是-vf "drawtext=fontfile…\:style…"
失败了,-vf "drawtext=fontfile…\\:style…"
也失败了,但是-vf "drawtext=fontfile…\\\\:style…"
又可以工作了。另外,似乎 fontconfig 关键字只能出现在fontfile=
的值中,而不能出现在其他值中,如font=
。 - Jim DeLaHunt[Parsed_drawtext_0 @ 0x7fd5f6706340] Option 'style' not found
错误,问题是我忘记在正确的位置上放置'
。请查看你上面的评论,仔细比较一下你的命令。 - Mint