avconv 和 ffmpeg - drawtext 过滤器 text_w 在 Ubuntu Precise 中计算结果为 0

avconv 和 ffmpeg - drawtext 过滤器 text_w 在 Ubuntu Precise 中计算结果为 0

我正在尝试使用 avconv 或 ffmpeg 命令将文本绘制到视频上。当指定 x= 来表示在最终视频上放置文本的位置时,“text_w”值被计算为 0,而不是应有的渲染文本的宽度。

  • 我正在使用 Ubuntu 12.04
  • 我有 avconv 版本 0.8.3-4:0.8.3-0ubuntu0.12.04.1
  • 和 ffmpeg 版本 0.8.3-4:0.8.3-0ubuntu0.12.04.1

示例命令:

avconv -i test.mov -vf "drawtext=fontfile='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf':text='test text':x=text_w:y=50:fontsize=24:fontcolor=black" texted.mov

此命令使文本被打印,就好像 x 被设置为 0 一样。

我真正想要做的是使用如下方法将文本水平居中:

avconv -i test.mov -vf "drawtext=fontfile='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf':text='test text':x=(main_w-text_w)/2:y=50:fontsize=24:fontcolor=black" texted.mov

使用 ffmpeg 尝试相同的操作,结果相同

ffmpeg -i test.mov -vf "drawtext=fontfile='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf':text='test text':x=(main_w-text_w)/2:y=50:fontsize=24:fontcolor=black" texted.mov

相关内容