我尝试使用 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
所有人都失败了。有没有人有使用ffmpeg添加文本的经验?
FFMPEG version: N-34549-g13b7781 build on Nov 6 2011
答案 0 :(得分:13)
在字体文件的路径中不能有冒号,因为冒号在ffmpeg中充当关键的sepperator。 I had the same problem。
ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile=/Windows/Fonts/arial.ttf:text=test -sameq vid_1321909320.flv
答案 1 :(得分:12)
在指定drawtext的参数时,冒号“:”和反斜杠“\”具有特殊含义。所以你可以做的是通过将“:”转换为“\:”并将“\”转换为“\\”来逃避它们。 您也可以用单引号将字体文件的路径括在路径中,包含空格。
所以你会有
ffmpeg -i C:\Test\rec\vid_1321909320.avi -vf drawtext=fontfile='C\:\\Windows\\Fonts\\arial.ttf':text=test vid_1321909320.flv
答案 2 :(得分:3)
我也遇到了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!
答案 3 :(得分:0)
尝试在参数上加上引号:
ffmpeg -i C:\Test\rec\vid_1321909320.avi \
-vf drawtext="fontfile=C:\Windows\Fonts\arial.ttf:text=test" \
-sameq vid_1321909320.flv