FFmpeg drawtext - 无法从文件加载字体

fal*_*cin 7 windows video ffmpeg

我尝试使用drawtext参数在FFmpeg上添加简单文本.每次我要这样做,都会返回错误:

无法从文件'arial.ttf'加载字体:无法打开资源

为了表明字体的位置,我使用了以下方法:

ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile=arial.ttf:text=test -sameq vid_1321909320.flv
ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile=C:\Windows\Fonts\arial.ttf:text=test -sameq vid_1321909320.flv
Run Code Online (Sandbox Code Playgroud)

一切都失败了.有没有人有使用ffmpeg添加文本的经验?

FFMPEG version: N-34549-g13b7781 build on Nov 6 2011
Run Code Online (Sandbox Code Playgroud)

Jar*_*red 16

您不能在字体文件的路径中包含冒号,因为冒号在ffmpeg中充当关键的sepperator.我遇到了同样的问题.

尝试:

ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile=/Windows/Fonts/arial.ttf:text=test -sameq vid_1321909320.flv
Run Code Online (Sandbox Code Playgroud)


ade*_*tum 12

在为drawtext指定参数时,冒号":"和反斜杠"\"具有特殊含义.所以你可以做的是通过将":"转换为"\:"并将"\"转换为"\\"来逃避它们.您也可以用单引号将字体文件的路径括起来,路径中包含空格.

所以你会有

ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile='C\:\\Windows\\Fonts\\arial.ttf':text=test vid_1321909320.flv
Run Code Online (Sandbox Code Playgroud)

  • 2017年仍然有用 (3认同)
  • 2011年的回答没有奏效,但是阿滕姆的答案奏效了. (2认同)
  • 在2018年仍然有用! (2认同)

cda*_*ung 5

我也遇到了 ffmpeg 识别 Windows 路径的问题。我最后只是将字体 Arial.ttf 放在与输入文件相同的文件夹中并且它起作用了。

[drawtext @ 03C66EA0] Key '/Windows/Fonts/Arial.ttf: text' not found.
[drawtext @ 03C66E00] Error parsing options string: 'fontfile=C:/Windows/Fonts/Arial.ttf: text=Test Text:x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2'
Error initializing filter 'drawtext' with args 'fontfile=C:/Windows/Fonts/Arial.ttf: text=Test Text:x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2'
Error opening filters!
Run Code Online (Sandbox Code Playgroud)

  • 使用正斜杠是引用字体文件的正确方法,包括在 Windows 上。为了在我的 Win10 机器上执行此操作,我转义了冒号,使用正斜杠并将路径括在单引号中,例如 `fontfile='C\:/WINDOWS/fonts/lucon.ttf'` (3认同)