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。
⚠️ 注意事项
- 必须安装底层工具:ImageMagick 和 FFmpeg 是必须的,Optimo 本身只是封装层,机器上没有这些二进制文件会报错。安装文档里有每个格式对应的依赖清单。
- 对 HEIC/AVIF 支持有限:这两种格式压缩效果依赖系统库,macOS 原生支持,Linux 需要额外装 libheif 或 libavif。
- GitHub Stars 不算多:这个项目相对小众,Issues 响应不一定及时,生产环境使用前建议跑一下 dry-run 确认输出符合预期。
- MIT 协议:可以商用,但请注意底层 FFmpeg 是 LGPL,ImageMagick 是 Apache 2.0,整体合规没问题。
✅ 总结
| 维度 | 评价 |
|---|---|
| 功能覆盖 | ⭐⭐⭐⭐⭐ 15 种格式,图片视频通吃 |
| 易用性 | ⭐⭐⭐⭐⭐ npx 跑起来,不用配置 |
| 压缩效果 | ⭐⭐⭐⭐ 有 lossless 默认,不乱压 |
| 灵活性 | ⭐⭐⭐⭐ 干跑/缩放/lossy/批量,参数丰富 |
| 文档 | ⭐⭐⭐⭐⭐ 官方文档清晰,常见问题有 FAQ |
推荐指数:⭐⭐⭐⭐(4/5)
如果你还在用笨办法手动压缩图片视频,或者团队没有统一的媒体优化流程,Optimo 值得在项目里跑一下。一条命令解决战斗,省下的时间写代码不香吗?