我正在尝试在ffmpeg中使用 -vf drawtext 函数。
以下命令成功运行
ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf drawtext=text=stackoverflow:fontfile=C:/WINDOWS/Fonts/georgia.ttf C:\o.mkv
然而,只要我们改变命令(更改位置fontfile = with text =
ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf drawtext=fontfile=C:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow C:\o.mkv
我收到以下错误
[Parsed_drawtext_0 @ 02d88a80] 无法加载字体" C":无法找到匹配的字体
[AVFilterGraph @ 02c86a20] 初始化过滤器' drawtext'时出错与args' fontf ILE = C:/WINDOWS/Fonts/georgia.ttf:文本=计算器:' 打开过滤器时出错!
我不明白为什么更改完全相同的参数会影响整体结果,这导致我真正的问题,因为每次我添加到此查询时我都不知道它是否仅仅是params的定位或我其实是在做错事。
答案 0 :(得分:0)
问题是该路径使用冒号(:
),它也恰好是参数的分隔符。我预计两个命令行都会失败,实际上......
docs状态,您需要一般性地逃避冒号,并为drawtext
请注意,冒号需要转义。
drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
因此,以下工作(Windows有点特别关于如何在shell中搜索内容,例如没有单引号转义,因此您还需要转义\
)
drawtext=fontfile=C\\:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow