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 顯示變更內容而不修改檔案—適合測試與 CI 檢查。
  • 批次與遞迴目錄處理:遞迴處理目錄,自動略過隱藏檔案與不支援格式。
  • Node.js / TypeScript 就緒的程式化 API:從腳本使用 optimo 最佳化單一檔案(optimo.file)或目錄(optimo.dir),結果包含原始/最佳化大小資料。
  • 簡單旗標控制 CLI:包含 --format(輸出格式)、--mute(移除音軌;預設 true)等選項,以及 --verbose--silent 日誌控制。
  • 需外部二進位檔支援格式:optimo 從您的 PATH 解析所需壓縮器,若必要二進位檔遺失則報錯(例如圖片格式需 ImageMagick 工具,影片需 FFmpeg)。

如何使用 optimo

先以 --dry-run 執行 optimo,驗證哪些檔案會被最佳化以及輸出變更情況。接著先測試單一檔案,確認結果後再對目錄執行批次處理。

常見工作流程包括 (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