You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FFmpeg创建带下划线的文本水印?

确实,ffmpeg的drawtext滤镜本身没有内置的下划线功能,不过我们有两种实用的方法来给你的水印文字添加下划线:

方法1:用两个drawtext滤镜模拟下划线

我们可以在水印文字下方绘制一条细线来模拟下划线,通过串联两个drawtext滤镜实现:

ffmpeg -i ./public/uploads/videos/1577703125107.mp4 -vf "[in]drawtext=fontfile=./public/fonts/Arial/arial.ttf:text='my watermark text':fontcolor=#000000:fontsize=20:x=23:y=68, drawtext=fontfile=./public/fonts/Arial/arial.ttf:text='%{repeat(textwidth(\'my watermark text\'), \'─\')}':fontcolor=#000000:fontsize=1:x=23:y=68+20+2[out]" ./public/uploads/videos/1577703128790.mp4

参数说明:

  • textwidth('my watermark text'):动态计算你的水印文字宽度,确保下划线长度和文字完全匹配
  • repeat(width, '─'):根据计算出的宽度生成对应长度的长横线(你也可以用下划线字符_替换─,调整字体大小来改变粗细)
  • y=68+20+2:下划线的垂直位置,是原文字的y坐标 + 字体大小 + 2像素的间距(可以根据需要微调)
  • fontsize=1:控制下划线的粗细,数值越大线越粗
方法2:使用ASS字幕实现原生下划线

如果需要更标准、美观的文本下划线,推荐用ASS字幕来实现,因为ASS原生支持文本样式包括下划线:

步骤1:创建ASS字幕文件

新建一个名为watermark.ass的文件,内容如下:

[Script Info]
ScriptType: v4.00+
PlayResX: 1920  # 替换成你的视频分辨率宽度
PlayResY: 1080  # 替换成你的视频分辨率高度

[V4+ Styles]
Style: Default,Arial,20,&H000000FF,&H00FFFFFF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,0

[Events]
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,23,68,,,\u1my watermark text\u0

关键说明:

  • \u1 开启下划线,\u0 关闭下划线
  • 23,68 是水印的x、y坐标,和你原来的drawtext参数一致
  • 字体、大小、颜色可以在Style部分调整(比如Arial,20是字体和大小,&H000000FF是文字颜色)

步骤2:用ffmpeg加载字幕

运行以下命令将字幕作为水印添加到视频中:

ffmpeg -i ./public/uploads/videos/1577703125107.mp4 -vf "subtitles=watermark.ass" ./public/uploads/videos/1577703128790.mp4

这种方法的优势是支持更多文本样式组合(比如同时加粗+下划线),下划线是真正的文本样式,视觉效果更自然。

内容的提问来源于stack exchange,提问作者Apoorv Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:07:52