我正在尝试使用 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