ffmpeg-绘制文本样式-粗体、斜体、下划线

问题描述 投票:0回答:3

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

ffmpeg
3个回答
7
投票

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

使用fontconfig设置字体。请注意,冒号必须是 逃脱了。

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

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

示例:

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

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


3
投票

您可以指定目标字体:

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

字体系列应该有适合您要使用的每种样式的正确文件。


0
投票

Windows 用户

对我来说,这在 Windows 中有效,你必须使用 fontfile 和下一个带有 3 个反斜杠的转义符,然后使用样式,例如:

fontfile=c\:\Windows\fonts\bahnschrift.ttf\:style='粗体'
*您还必须转义字体文件的路径

ffplay -f lavfi -i "color=color=blue:s=500x300,drawtext=text='Teste 1 (default)':fontfile='c\:\\windows\\fonts\\bahnschrift.ttf':fontsize=62:x=(W-tw)/2:y=20:fontcolor=white:borderw=3:bordercolor=black,drawtext=text='Teste 2 (italic)':fontfile='c\:\\windows\\fonts\\bahnschrift.ttf'\\\:style='italic':fontsize=62:x=(W-tw)/2:y=20+th+20:fontcolor=white:borderw=3:bordercolor=black,drawtext=text='Teste 3 (bold)':fontfile='c\:\\windows\\fonts\\bahnschrift'\\\:style='bold':fontsize=62:x=(W-tw)/2:y=20+20+20+th+th:fontcolor=white:borderw=3:bordercolor=black"

using drawtext filter

通过使用字幕而不是绘图文本,我还能够生成下划线和删除线文本:

ffplay -f lavfi -i "color=color=blue:s=500x300,subtitles='underline.txt':force_style='fontsize=50,bold=1,underline=1,alignment=6,primarycolour=&Hffffff&,outlinecolour=&h000000&,fontname='arial black,subtitles='strikethrough.txt':force_style='fontsize=50,strikeout=1,marginv=80,alignment=6,primarycolour=&Hffffff&,outlinecolour=&h000000&,fontname='arial black"

using subtitle filter

下划线.txt:

001
00:00:00.000 --> 02:00:00.000
test 1 (underline)

删除线.txt:

001
00:00:00.000 --> 02:00:30.000
test 2 (Strikethrough)
© www.soinside.com 2019 - 2024. All rights reserved.