FFmpeg drawtext 的字体文件无法加载

FFmpeg drawtext's fontfile unable to load

我有这个 Parisienne 字体文件,我想使用该字体在 gif 上书写,但输出字体从来不是 Parisienne,它始终显示为正常 Arial

命令

ffmpeg -i C:\Users97\www\post2\css\back2.gif -vf "drawtext=fontfile='C\:\Windows\Fonts\2.ttf':text='Darbuka 70':fontcolor=#5c391685:fontsize=160::x=(w-text_w)/2:y=20" C:\Users97\www\post2\css\output.mp4

字体文件是这样的:

输出:

可能是因为没有足够的转义字符 (\)。 FFmpeg 需要一个,shell 需要加倍。所以,试试

fontfile='C\\:/Windows/Fonts/2.ttf'

当我在 Python 中测试时,有四个 \ 有效,但如果它没有 add/subtract 一次一对,看看哪个适合你。

最后,如果您想查看 fontfile 选项是否设置正确,请添加 -loglevel debug 选项并在日志中查找类似以下的行:

[Parsed_drawtext_2 @ 0000015e54962a80] Setting 'fontfile' to value 'C:/Windows/Fonts/2.ttf'

如果没有正确转义,您会看到如下日志:

[Parsed_drawtext_2 @ 000001c010782440] Setting 'fontfile' to value 'C'
[Parsed_drawtext_2 @ 000001c010782440] Setting 'text' to value '/Windows/Fonts/2.ttf'

P.S.,我作弊并使用 / 作为目录分隔符。如果你想使用 \,同样的规则适用。每个 \ 需要几个 \。参见 documentation