【问题标题】:How to increase line-height of text using drawtext with FFMPEG?如何使用带有 FFMPEG 的 drawtext 增加文本的行高?
【发布时间】:2020-05-23 22:32:11
【问题描述】:

我正在使用当前代码创建一个包含几行文本的视频。执行时,由于空间不足,我收到一个带有垂直连接文本的视频。如何添加行高空间?

ffmpeg -i videoInput.mp4 \
       -vf drawtext="./font/Roboto/Roboto-Bold.ttf: \
           text='testing text \ntesting text \ntesting text':\
           fontcolor=yellow:\
           fontsize=36:\
           box=1:\
           boxcolor=black@0.5: \
           boxborderw=160:\
           x=(w-text_w)/2:\
           y=(h-text_h)/2"\
    -codec:a copy \
    videoOutput.mp4

【问题讨论】:

  • 我认为你不能指定行高。但是你可以使用几个不同的drawtext行,用逗号分隔,每行都在不同的位置。但是,如果您的文本没有相同的行数,这可能不切实际。也许您使用字幕或 ass 过滤器可以获得更好的结果?
  • 我使用了 \n\n 字符来分隔行,但它对这种技术有限制。我会寻找字幕过滤器,也许这是一种更好的文本样式设置方法。非常感谢您的洞察力。

标签: ffmpeg drawtext


【解决方案1】:

要增加行高,请在命令中添加 line_spacing 参数,(http://ffmpeg.org/ffmpeg-filters.html#drawtext-1) 所以它看起来像:

ffmpeg -i videoInput.mp4 \
       -vf drawtext="./font/Roboto/Roboto-Bold.ttf: \
           text='testing text \ntesting text \ntesting text':\
         line_spacing=30:\
           fontcolor=yellow:\
           fontsize=36:\
           box=1:\
           boxcolor=black@0.5: \
           boxborderw=160:\
           x=(w-text_w)/2:\
           y=(h-text_h)/2"\
    -codec:a copy \
    videoOutput.mp4

或者

一些技巧是在所需文本上附加双断线。它看起来像:

  text='testing text \n\ntesting text \n\ntesting text'
ffmpeg -i videoInput.mp4 \
       -vf drawtext="./font/Roboto/Roboto-Bold.ttf: \
           text='testing text \n\ntesting text \n\ntesting text':\
           fontcolor=yellow:\
           fontsize=36:\
           box=1:\
           boxcolor=black@0.5: \
           boxborderw=160:\
           x=(w-text_w)/2:\
           y=(h-text_h)/2"\
    -codec:a copy \
    videoOutput.mp4

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2016-04-25
    • 2016-07-29
    • 2018-10-28
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多