【发布时间】:2017-03-08 19:44:15
【问题描述】:
如何根据每个分辨率的宽度和高度设置视频上drawtext的字体大小,达到一定的比例?
ffmpeg -i Input.mp4 -vf drawtext="fontfile=OpenSans-Regular.ttf: \
text='New Music Video': fontcolor=white: fontsize=?: r=25: box=1: boxcolor=black@0.3: \ boxborderw=3: x=(20)/2: y=(h-text_h-20) " Output.mp4
我问这个问题是因为当我将它设置为 24 fontsize=24 时,当转换完成时,它的大小在其他分辨率下是不同的。
【问题讨论】:
-
fontsize还不支持表达式,只支持整数值。除非您想修补它,否则请确定所需的大小并将其传递给ffmpeg命令。 -
hack 方法是在透明的 BG 上绘制文本,然后使用 scale2ref 调整文本大小,然后覆盖它。
-
@Mulvya 你能给我一个示例代码或任何例子吗?如何在透明的 BG 上绘制文本?
-
@Mulvya 它似乎不能像你提到的那样起作用,因为当你改变背景的大小时,文本大小不会改变。并且文本的一些字符淡出,因为只是BG框尺寸减小了。
-
我现在正忙于工作,所以可以稍后提供命令,但基本流程是 1)创建透明 BG 2)在 BG 上绘制文本 3)使用 scale2ref 调整带文本的 BG 大小。