10

I've try to add simple text on top of video with FFmpeg using drawtext parameter. Every time i'm going to do this, error is returned:

Could not load fontface from file 'arial.ttf': cannot open resource

To indicate the location of the font I used the following methods:

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

All have failed. Does anyone have experience with adding text using ffmpeg?

FFMPEG version: N-34549-g13b7781 build on Nov 6 2011
Stu Thompson
  • 36,763
  • 19
  • 104
  • 155
falek.marcin
  • 7,006
  • 8
  • 25
  • 32

3 Answers3

22

You cannot have a colon in the path to your font file as the colon acts as a key sepperator in ffmpeg. I had the same problem.

try:

ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile=/Windows/Fonts/arial.ttf:text=test -sameq vid_1321909320.flv
Community
  • 1
  • 1
Jay
  • 2,827
  • 6
  • 34
  • 49
17

A colon ":" and a backslash "\" have special meaning when specifying the parameters for drawtext. So what you can do is to escape them by converting ":" to "\:" and "\" to "\\". Also you can enclose the path to your font file in single quotes incase the path contains spaces.

So you will have

ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile='C\:\\Windows\\Fonts\\arial.ttf':text=test vid_1321909320.flv
adentum
  • 942
  • 1
  • 11
  • 21
4

I was also having trouble with ffmpeg recognizing Windows paths. I finally just put the font Arial.ttf in the same folder as the input file and it worked.

[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!
sjngm
  • 11,411
  • 13
  • 72
  • 105
cdavidyoung
  • 2,152
  • 2
  • 21
  • 34
  • Your solution also works. Thanks – falek.marcin Nov 21 '11 at 18:19
  • 1
    Using forward slashes is the appropriate way to reference a font file, including on Windows. To do this on my Win10 machine, I escaped the colon, used forward slashes and enclosed the path in single quotes, e.g. `fontfile='C\:/WINDOWS/fonts/lucon.ttf'` – Chris Woods Jan 19 '20 at 11:09