UStackUStack
optimo icon

optimo

optimo 是免费的开源 CLI,用基于 ImageMagick 与 FFmpeg 的格式化压缩优化并转换网页图片与视频。支持批量处理。

optimo

optimo 是什么?

optimo 是一个免费的开源 CLI 工具,用于优化和转换网页图片与视频。它应用基于 ImageMagick 的图片格式特定压缩流程,以及基于 FFmpeg 的视频压缩,生成更小的文件,同时追求可预测的结果。

optimo 的核心目的是处理您现有的媒体(文件或目录),运行可靠的优化步骤——可选包括格式转换和调整尺寸——而无需您手动为每种格式组装不同的工具和参数。

主要特性

  • 多种网页格式的特定管道:图片格式(例如 PNG、JPEG、WebP、AVIF、HEIC、JPEG XL、GIF、SVG)使用基于 ImageMagick 的步骤,视频格式(例如 MP4、WebM、MOV、MKV、AVI、OGV)使用基于 FFmpeg 的压缩。
  • 默认无损,可选有损模式:运行无损压缩以保留质量,除非启用 --lossy 以获得最大压缩。
  • 单标志控制调整尺寸:按百分比调整(例如 50%)、目标文件大小(例如 100kB),或使用 w{number} / h{number} 约束尺寸。
  • 预览的 Dry-run 模式--dry-run 显示将要更改的内容而不修改文件——适用于测试和 CI 检查。
  • 批量和递归目录处理:递归处理目录,自动跳过隐藏文件和不支持的格式。
  • Node.js / TypeScript 就绪的程序化 API:在脚本中使用 optimo 优化单个文件(optimo.file)或目录(optimo.dir),结果数据包含原始/优化大小。
  • 简单标志控制 CLI:包括 --format(输出格式)、--mute(移除音频轨道;默认 true)以及日志控制如 --verbose--silent
  • 支持格式需外部二进制文件:optimo 从您的 PATH 解析所需压缩器,如果必要二进制文件缺失则报错(例如,图片格式需 ImageMagick 工具,视频需 FFmpeg)。

如何使用 optimo

首先运行 optimo 并带 --dry-run 以验证哪些文件将被优化以及输出将如何变化。然后先在单个文件上测试,确认结果后在目录上运行批量处理。

常见工作流包括 (1) 原地优化指定格式,(2) 尺寸或大小需变更时使用 --resize 调整,(3) 仅在有意转换时使用 --format 转换为指定输出格式。

使用场景

  • 减少混合图片集的页面加载和存储:一次性运行优化包含 PNG、JPEG、WebP、AVIF/HEIC、GIF 和 SVG 的资产生区,而非逐个格式处理。
  • 响应式布局的受控调整尺寸:使用 --resize 按百分比缩放或按宽/高约束(例如 w960h480),然后提交优化资产。
  • 带宽关键时激进缩小媒体:需最大压缩而非无损默认保留质量时启用 --lossy
  • 网页导向压缩优化视频导出:使用 FFmpeg 驱动设置压缩视频目录,可选通过 --mute(默认 true)静音/移除音频轨道。
  • 集成到自动化检查和版本控制:运行 --dry-run 进行 CI 验证,并设置 pre-commit hook 以在变更提交前自动优化暂存媒体文件。

常见问题

optimo 基于什么构建?
optimo 使用 ImageMagick 处理图片和 FFmpeg 进行视频压缩。

optimo 默认修改文件吗?
否——使用 --dry-run 预览变更而不修改文件。不带 --dry-run 时,optimo 对提供的输入运行优化。

可以选择输出格式吗?
可以。使用 --format 选项将输出转换为指定格式(例如,将图片转换为 webp)。源材料注明仅在有意转换时使用 --format

optimo 如何处理批量?
可传入目录进行递归处理。隐藏文件和不支持格式自动跳过。

需要安装哪些工具?
optimo 从您的 PATH 解析所需压缩器,如果必要二进制文件缺失则抛出错误。所需二进制文件依格式而异(例如,图片格式需 ImageMagick 相关工具,视频需 FFmpeg)。

替代方案

  • 自行组装的通用图片/视频优化流程:手动使用单独工具和标志(包括直接使用 ImageMagick/FFmpeg)可能更灵活,但通常需要格式特定的决策,而 optimo 已将其集中化。
  • 专注于格式转换的工具:主要在图片/视频格式间转换的工具,可能无法提供同样针对网页优化的格式特定压缩流程和默认设置。
  • 构建系统或资产生成管道插件:资产生成管道集成可在构建时自动化优化,但工作流程和控制粒度(例如,按文件大小调整尺寸或预览运行)可能不同于像 optimo 这样的 CLI 优先工具。
optimo | UStack