UStackUStack
optimo icon

optimo

optimo est un CLI open source gratuit pour optimiser et convertir images et vidéos pour le web, avec compression adaptée via ImageMagick et FFmpeg.

optimo

Qu'est-ce qu'optimo ?

optimo est un outil CLI gratuit et open source pour optimiser et convertir images et vidéos pour le web. Il applique des workflows de compression spécifiques aux formats, basés sur ImageMagick pour les images et FFmpeg pour les vidéos, produisant des fichiers plus petits tout en visant des résultats prévisibles.

L'objectif principal d'optimo est de prendre vos médias existants (fichiers ou dossiers) et d'exécuter des étapes d'optimisation fiables — incluant optionnellement conversion de format et redimensionnement — sans nécessiter d'assembler manuellement différents outils et options pour chaque format.

Fonctionnalités principales

  • Pipelines spécifiques aux formats pour de nombreux formats web : Utilise des étapes basées sur ImageMagick pour les formats image (ex. PNG, JPEG, WebP, AVIF, HEIC, JPEG XL, GIF, SVG) et compression basée sur FFmpeg pour les formats vidéo (ex. MP4, WebM, MOV, MKV, AVI, OGV).
  • Sans perte par défaut, mode avec perte en option : Applique une compression sans perte préservant la qualité, sauf si vous activez --lossy pour une compression maximale.
  • Contrôles de redimensionnement en une option : Redimensionnez par pourcentage (ex. 50%), taille cible (ex. 100kB), ou contrainte de dimensions avec w{number} / h{number}.
  • Mode dry-run pour prévisualisations sécurisées : --dry-run affiche les changements sans modifier les fichiers — idéal pour les tests et vérifications CI.
  • Traitement par lots et récursif des dossiers : Traite les dossiers de manière récursive, en ignorant automatiquement les fichiers cachés et formats non pris en charge.
  • API programmatique prête pour Node.js / TypeScript : Utilisez optimo dans des scripts pour optimiser un fichier unique (optimo.file) ou un dossier (optimo.dir), avec des données de résultats incluant tailles originale/optimisée.
  • Contrôle CLI via options simples : Inclut des options comme --format (format de sortie), --mute (supprimer les pistes audio ; true par défaut), et contrôles de journalisation comme --verbose et --silent.
  • Nécessite des binaires externes pour les formats pris en charge : Optimo résout les compresseurs requis depuis votre PATH et génère une erreur si les binaires nécessaires sont absents (ex. outils ImageMagick pour les formats image et FFmpeg pour les vidéos).

Comment utiliser optimo

Commencez par exécuter optimo avec --dry-run pour vérifier quels fichiers seraient optimisés et comment les sorties changeraient. Testez ensuite sur un fichier unique, et seulement après confirmation des résultats, lancez-le sur des dossiers pour un traitement par lots.

Les workflows courants incluent (1) optimisation en place pour un format donné, (2) redimensionnement avec --resize quand les dimensions ou la taille doivent changer, et (3) conversion vers un format de sortie spécifié avec --format uniquement quand la conversion est prévue.

Cas d'usage

  • Réduire temps de chargement et stockage pour ensembles d'images mixtes : Optimisez un dossier d'assets contenant PNG, JPEG, WebP, AVIF/HEIC, GIF et SVG en une seule exécution au lieu de traiter chaque format séparément.
  • Appliquer un redimensionnement contrôlé pour layouts responsives : Utilisez --resize pour scaler par pourcentage ou contraindre largeur/hauteur (ex. w960 ou h480) avant de valider les assets optimisés.
  • Réduire agressivement les médias quand la bande passante compte : Activez --lossy quand vous priorisez la compression maximale plutôt que la préservation de qualité avec les valeurs par défaut sans perte.
  • Optimiser exports vidéo avec compression web : Compressez des dossiers vidéo via des réglages FFmpeg, en mutuant/supprimant optionnellement les pistes audio avec --mute (true par défaut).
  • Intégrer dans vérifications automatisées et contrôle de version : Exécutez --dry-run pour validation CI et configurez un hook pre-commit pour auto-optimiser les fichiers média mis en scène avant commit.

FAQ

Sur quoi s'appuie optimo ? Optimo utilise ImageMagick pour le traitement image et FFmpeg pour la compression vidéo.

optimo modifie-t-il les fichiers par défaut ? Non — utilisez --dry-run pour prévisualiser les changements sans modifier les fichiers. Sans --dry-run, optimo optimise les entrées fournies.

Puis-je choisir les formats de sortie ? Oui. Utilisez l'option --format pour convertir la sortie vers un format spécifié (ex. convertir une image en webp). La documentation source note d'utiliser --format uniquement quand la conversion est prévue.

Comment optimo gère-t-il le traitement par lots ? Vous pouvez passer des dossiers pour un traitement récursif. Les fichiers cachés et formats non pris en charge sont ignorés automatiquement.

Quels outils dois-je installer ? Optimo résout les compresseurs requis depuis votre PATH et lève une erreur si les binaires requis manquent. Les binaires requis varient selon le format (ex. outils liés à ImageMagick pour les formats image, FFmpeg pour les vidéos).

Alternatives

  • Pipelines d’optimisation génériques pour images/vidéos assemblés manuellement : Utiliser des outils et drapeaux séparés (y compris ImageMagick/FFmpeg directement) peut être flexible, mais nécessite généralement des décisions spécifiques au format qu’optimo centralise.
  • Outils axés sur la conversion de formats : Les outils qui convertissent principalement entre formats image/vidéo ne fournissent pas forcément les mêmes pipelines de compression spécifiques au format et réglages optimisés pour le web.
  • Plugins pour systèmes de build ou pipelines d’assets : Les intégrations dans les pipelines d’assets automatisent l’optimisation lors des builds, mais le workflow et le niveau de contrôle (ex. : redimensionnement par taille de fichier ou prévisualisations dry-run) diffèrent d’un outil CLI comme optimo.
optimo | UStack