Optimo 是 Microlink 出品的免费开源 CLI 工具,一键优化压缩图片和视频,支持 PNG/JPEG/WebP/AVIF/HEIC 等 15 种格式,基于 ImageMagick 和 FFmpeg,npx 即可运行,前端开发者必备工具,MIT 协议。

🎤 引言

网站图片太大加载慢,视频没压缩动不动几十 MB,每次发版本要手动拖进 Squoosh 或 HandBrake 处理?

今天安利一个来自 Microlink 的开源 CLI 工具叫 Optimo,一条命令压缩图片/视频,15 种格式支持,npx 跑起来,FFmpeg 和 ImageMagick 做底层,质量有保证。最重要的是完全免费,MIT 协议,不用注册不用付费。


⭐ 核心功能

15 种媒体格式全覆盖

图片格式:PNG、JPEG、WebP、AVIF、HEIC、JPEG XL、GIF、SVG
视频格式:MP4、WebM、MOV、MKV、AVI、OGV

每种格式都有专属压缩管线,不是那种无脑转 MP4 的粗暴方案,而是根据格式特性选择最优压缩策略。

用法极简,npx 跑起来

# 直接 npx 运行,无需安装
npx optimo public/

# 单张图片优化
npx optimo banner.jpg

# 指定格式转换
npx optimo img.png --format webp

# 开启最大压缩(lossy 模式)
npx optimo image.jpg --lossy

灵活缩放选项

按百分比、按目标文件大小、按宽度或高度,一条命令搞定缩放 + 压缩:

# 缩小到 50%
npx optimo img.png --resize 50%

# 压缩到最大 100KB
npx optimo img.png --resize 100kB

# 限制宽度 960px
npx optimo img.png --resize w960

干跑模式(Dry Run)

npx optimo public/ --dry-run

不修改任何文件,只预览压缩效果。配合 Git Pre-Commit 做 CI 检查特别有用。

Node.js API 支持

不仅能当 CLI 用,还能在 Node 脚本里调用,TypeScript 完整支持:

const optimo = require('optimo')

// 单文件处理
await optimo.file('/path/image.jpg', {
  format: 'webp',
  resize: '50%',
  onLogs: console.log
})

// 批量处理目录
const result = await optimo.dir('/path/images')
// { originalSize, optimizedSize, savings }

📥 安装与使用

环境要求:Node.js + ImageMagick + FFmpeg(视频需要)

# Node 方式安装
npm install optimo

# 或者直接 npx 运行
npx optimo public/

依赖安装(各系统)

# macOS
brew install imagemagick ffmpeg

# Linux (Ubuntu/Debian)
apt install imagemagick ffmpeg

# Windows (via Chocolatey)
choco install imagemagick ffmpeg

🎯 适用场景

  • 前端开发:上线前批量压缩 public 目录里的图片视频,减少带宽支出。
  • CI/CD 流水线:Git Pre-Commit 钩子自动压缩,团队成员提交的资源天然已优化。
  • 静态博客:Hexo/Hugo 打包前自动处理媒体资源,Vercel/Netlify 加载速度肉眼可见提升。
  • 内容运营:批量压缩运营图片,丢进 CDN 前先过一遍 Optimo。

⚠️ 注意事项

  1. 必须安装底层工具:ImageMagick 和 FFmpeg 是必须的,Optimo 本身只是封装层,机器上没有这些二进制文件会报错。安装文档里有每个格式对应的依赖清单。
  2. 对 HEIC/AVIF 支持有限:这两种格式压缩效果依赖系统库,macOS 原生支持,Linux 需要额外装 libheif 或 libavif。
  3. GitHub Stars 不算多:这个项目相对小众,Issues 响应不一定及时,生产环境使用前建议跑一下 dry-run 确认输出符合预期。
  4. MIT 协议:可以商用,但请注意底层 FFmpeg 是 LGPL,ImageMagick 是 Apache 2.0,整体合规没问题。

✅ 总结

维度评价
功能覆盖⭐⭐⭐⭐⭐ 15 种格式,图片视频通吃
易用性⭐⭐⭐⭐⭐ npx 跑起来,不用配置
压缩效果⭐⭐⭐⭐ 有 lossless 默认,不乱压
灵活性⭐⭐⭐⭐ 干跑/缩放/lossy/批量,参数丰富
文档⭐⭐⭐⭐⭐ 官方文档清晰,常见问题有 FAQ

推荐指数:⭐⭐⭐⭐(4/5)

如果你还在用笨办法手动压缩图片视频,或者团队没有统一的媒体优化流程,Optimo 值得在项目里跑一下。一条命令解决战斗,省下的时间写代码不香吗?

项目地址:GitHub - microlinkhq/optimo