UStackUStack
optimo icon

optimo

optimoは無料のオープンソースCLI。ImageMagickとFFmpegで画像・動画をWeb向けに最適化/変換し、ファイルを軽量化。

optimo

optimoとは?

optimoは、Web向けに画像と動画を最適化・変換する無料のオープンソースCLIツールです。ImageMagickを基盤とした画像用とFFmpegを基盤とした動画用のフォーマット別圧縮ワークフローを適用し、ファイルサイズを小さくしつつ予測可能な結果を目指します。

optimoの主な目的は、既存のメディア(ファイルやディレクトリ)を受け取り、信頼性の高い最適化ステップを実行することです—フォーマットごとのツールやフラグを手動で組み合わせる必要なく、任意でフォーマット変換やリサイズを含みます。

主な機能

  • 多くのWebフォーマット向けフォーマット別パイプライン: 画像フォーマット(例: PNG, JPEG, WebP, AVIF, HEIC, JPEG XL, GIF, SVG)にはImageMagickベースのステップを、動画フォーマット(例: MP4, WebM, MOV, MKV, AVI, OGV)にはFFmpegベースの圧縮を使用。
  • デフォルト無損失、任意の損失圧縮モード: 品質を保持する無損失圧縮を実行。最大圧縮が必要なら--lossyを有効に。
  • 1つのフラグでリサイズ制御: パーセンテージ(例: 50%)、目標ファイルサイズ(例: 100kB)、またはw{number} / h{number}で寸法を制限。
  • 安全プレビュー用のdry-runモード: --dry-runでファイル変更なしに変更内容を表示—テストやCIチェックに便利。
  • バッチ・再帰ディレクトリ処理: ディレクトリを再帰的に処理し、非表示ファイルや非対応フォーマットを自動スキップ。
  • Node.js / TypeScript対応プログラムAPI: スクリプトから単一ファイル(optimo.file)やディレクトリ(optimo.dir)を最適化。結果データに元サイズ/最適化サイズを含む。
  • シンプルフラグでCLI制御: --format(出力フォーマット)、--mute(オーディオトラック削除; デフォルトtrue)、ログ制御(--verbose--silent)など。
  • 対応フォーマット用外部バイナリ必要: PATHから必須コンプレッサーを解決。必要なバイナリ(例: 画像用ImageMagickツール、動画用FFmpeg)がないとエラー。

optimoの使い方

最初に--dry-runで最適化対象ファイルと出力変更を確認してから、単一ファイルでテストし、結果確認後にディレクトリでバッチ処理を実行。

一般的なワークフローは(1) 指定フォーマットでその場最適化、(2) 寸法/サイズ変更時に--resizeでリサイズ、(3) 変換目的時のみ--formatで出力フォーマット指定。

ユースケース

  • 混合画像セットのページロード/ストレージ削減: PNG, JPEG, WebP, AVIF/HEIC, GIF, SVGを含むアセットディレクトリを1回の実行で最適化。各フォーマットを個別処理不要。
  • レスポンシブレイアウト向け制御リサイズ: --resizeでパーセンテージスケールや幅/高さ制限(例: w960h480)を適用し、最適化アセットを確定。
  • 帯域が重要な場合の積極的メディア縮小: 無損失デフォルトより最大圧縮が必要なら--lossyを有効。
  • Web指向圧縮で動画エクスポート最適化: FFmpeg駆動設定で動画ディレクトリ圧縮。--muteオプション(デフォルトtrue)でオーディオトラックを任意でミュート/削除。
  • 自動チェック/バージョン管理への統合: CI検証に--dry-runを実行。コミット前にステージメディアを自動最適化するpre-commit hookを設定。

FAQ

optimoは何を基盤にしている? 画像処理にImageMagick、動画圧縮にFFmpegを使用。

optimoはデフォルトでファイルを変更する? いいえ。--dry-runで変更なしにプレビュー。--dry-runなしで提供入力に最適化を実行。

出力フォーマットを選択できる? はい。--formatで指定フォーマットに変換(例: 画像をwebpに)。変換目的時のみ--formatを使用。

optimoはどうバッチ処理する? ディレクトリを渡せば再帰処理。非表示ファイルと非対応フォーマットを自動スキップ。

どんなツールをインストールする必要がある? PATHから必須コンプレッサーを解決。必須バイナリがないとエラー。フォーマットにより異なる(例: 画像用ImageMagick関連ツール、動画用FFmpeg)。

代替ツール

  • 汎用的な画像/動画最適化パイプライン(自分で組み立てるもの):別々のツールとフラグを手動で使う(ImageMagick/FFmpegを直接含む)のは柔軟ですが、通常フォーマット固有の判断が必要で、optimoが一元化しています。
  • フォーマット変換に特化したツール:主に画像/動画フォーマット間の変換を行うツールは、同じフォーマット固有の圧縮パイプラインやWeb向け最適化デフォルトを提供しない場合があります。
  • ビルドシステムやアセットパイプラインのプラグイン:アセットパイプライン統合はビルド時に最適化を自動化しますが、ワークフローや制御の細かさ(例:ファイルサイズによるリサイズやdry-runプレビュー)はCLI優先のoptimoとは異なる可能性があります。
optimo | UStack