是否可以在ffmpeg中向文本添加笔触?

时间:2018-12-05 11:58:37

标签: text ffmpeg stroke

我想在ffmpeg的文本中添加黑色描边。有可能吗?

-c:v libx264 -vf "hue=h=0, drawtext=fontfile=../bin/RobotoCondensed-Bold.ttf:text='Hello.':fontcolor=white: fontsize=158: x=0+(w-text_w)/2: y=50+(h-text_h-line_h)/2" -c:a copy -shortest -pix_fmt yuv420p ../bin/ENG_01.mov

2 个答案:

答案 0 :(得分:3)

您可以使用drawtext更改参数来更改边框颜色和边框宽度

bordercolor=black:
borderw=5:

您的代码将显示

-c:v libx264 \
-vf "hue=h=0,\
  drawtext=fontfile=../bin/RobotoCondensed-Bold.ttf:\
   text='Hello.':\
   bodercolor=white:\
   borderw=5:\
   fontcolor=white:\
   fontsize=158:\
   x=0+(w-text_w)/2: y=50+(h-text_h-line_h)/2"\
 -c:a copy -shortest -pix_fmt yuv420p \
../bin/ENG_01.mov

答案 1 :(得分:1)

使用subtitles过滤器而不是drawtext来添加完整的笔划更加容易。

字幕过滤器

enter image description here

ffmpeg将应用在ASS文件中设置的OutlineOutlineColour选项。或者,您可以在ffmpeg命令中手动设置这些命令,这对于不支持笔触的其他字幕格式很有用:

ffmpeg -i input -filter_complex "subtitles=your_subtitles_file.srt:force_style='Outline=5,OutlineColour=&H000000&'" output

来自Advanced Substation Alpha Tags

  

颜色代码以蓝色,绿色,红色的顺序以十六进制给出。注意   这是与HTML颜色代码相反的顺序。颜色代码必须   始终以&H开头并以&结尾。默认OutlineColour为   黑色(&H000000&

drawtext过滤器

enter image description here

您可以在绘制文本过滤器中设置shadowcolorshadowxshadowy选项以设置阴影。它不会完全包围文本,因此实际上不是笔画,但可能足够好。

ffmpeg -i input -filter_complex "drawtext=text='drawtext stroke':fontcolor=white:shadowcolor=black:shadowx=2:shadowy=2" output