利用ffmpeg给gif配上文字

复制代码
./ffmpeg -i ./sk.gif -vf "fps=10,scale=400:-1,
drawtext=fontfile='/System/Library/Fonts/STHeiti Medium.ttc':text='嗷~'
:fontcolor=yellow:bordercolor=black:borderw=1:fontsize=100:x=(w-text_w)/2:y=h-text_h-20:enable='between(t,0,1.8)',
drawtext=fontfile='/System/Library/Fonts/STHeiti Medium.ttc':text='哈哈哈'
:fontcolor=yellow:bordercolor=black:borderw=1:fontsize=100:x=(w-text_w)/2:y=h-text_h-20:enable='between(t,1.9,4)'" hahaha.gif

关键参数说明​

  • enable='between(t,开始时间,结束时间)':控制文本显示的时间段(单位:秒)。
  • text='你的文本':要显示的文本内容(需转义特殊字符如 '%)。
  • x, y:文本位置(示例:x=(w-text_w)/2:y=(h-text_h)/2 居中显示)。
  • fontfile=字体路径:自定义字体(如 fontfile=/path/to/font.ttf)。
  • fontsize=数字, fontcolor=颜色:字体大小和颜色(如 fontcolor=white)。
  • 转义字符​ :文本含单引号时需转义(如 text='It\'s a test')。
  • RGBA 格式(推荐):bordercolor=0xRRGGBBAA
  • 例如红色,完全不透明:bordercolor=0xff0000ff
  • 红色,半透明(alpha=128):bordercolor=0xff000080
  • 带透明度的名称格式(可选) :bordercolor=black@0.5 其中@0.5 表示 50% 透明。
  • 移动文字​ :使用 x/y 动态表达式,t表示时间
复制代码
  x='50 + 10*t':y='h - 20*t'
  x与的坐标中,有关键字文本自身的宽高text_w,text_h
  图片的宽高w,h
  #比如居中显示
  x=(w-text_w)/2:y=(h-text_h)/2 

  常用中文字体路径(macOS):
  你可以用这些字体名尝试:

  字体名称	文件路径示例
  苹方 (PingFang)	/System/Library/Fonts/Supplemental/PingFang.ttc
  华文黑体	/System/Library/Fonts/STHeiti Medium.ttc
  华文仿宋	/System/Library/Fonts/STFangsong.ttf
  宋体	/System/Library/Fonts/Supplemental/Songti.ttc

mac系统

  • 字体路径在/System/Library/Fonts

  • 也可在cmd中使用ls /System/Library/Fonts

相关推荐
海带紫菜菠萝汤21 小时前
FFmpeg.wasm 实践:在浏览器中运行 FFmpeg 的能力边界与性能瓶颈
前端·javascript·ffmpeg·音视频·wasm
程序员老陆2 天前
FFmpeg6的滤镜函数解析
ffmpeg·音视频·avfilter
看浪的路人2 天前
第10讲:Python 调用 FFmpeg 批量处理——打造你的视频处理工具箱
python·ffmpeg·音视频
程序员老陆3 天前
FFmpeg 时间戳全解:从 av_rescale_q 到时间基黑洞
ffmpeg·音视频·时间基
水獭比特3 天前
自动成片没报错,为什么音画还会漂?
ffmpeg
Yeauty3 天前
2026 年在 Rust 里处理音视频,该走哪条路?
rust·ffmpeg·音视频·视频
勿忘初心12214 天前
【Windows流媒体实战1】FFmpeg+Nginx-RTMP Windows详细搭建教程
ffmpeg·nginx-rtmp·windows流媒体搭建·rtmp直播
勿忘初心12214 天前
【Windows流媒体实战2】SpringBoot2.x 整合FFmpeg 完整实操教程
ffmpeg·springboot·流媒体开发·nginx-rtmp·rtmp视频录制
Yeauty7 天前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg
Yeauty8 天前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频