如何将像素或点单位映射到 ffmpeg 字体/文本大小

How to map pixel or point units to ffmpeg font / text size

我有一个网页表单,我将以像素或点为单位的文本大小传递给 ffmpeg 和 运行 ffmpeg 命令来设置文本大小,但它们不匹配。 ffmpeg 文本大小标准单位是什么,或者有什么方法可以将像素或单位转换为 ffmpeg 文本大小,这样它们就不会有所不同。

drawtext filter 中的fontsize 参数传递给实际负责绘制字符的freetype 库。使用 ffmpeg 运行时最接近将字体大小映射到像素单位的是 print

ffmpeg -v 24 -hide_banner -f lavfi -i color -vf "drawtext=/path/to/font:fontsize=1000:text='A':x=W/2:y=print(th\,24)" -vframes 1 -f null -

这将使用指定字体打印大写字母 'A' 在字体大小为 1000 时占用的高度(以像素为单位)。不同的字体有不同的比例。