ffmpeg命令行为随机性

时间:2014-07-01 17:15:05

标签: ffmpeg

我正在尝试在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的定位或我其实是在做错事。

1 个答案:

答案 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