- Web
- Tutoriel
12 novembre 2025
C’est bien d’avoir des images en format .webp sur Internet, parce que c’est bien compressé, donc ça pèse pas lourd, et donc c’est plus rapide, moins couteux, etc. Avec des dimensions adaptées à l’affichage.
Pour les vidéos, privilégiez le .mp4 avec un codec H.264+AAC, en 480p ou 720p selon la taille affichée.
Pour les images animées, il vaut mieux éviter le format .gif, pas optimisé pour le web. Préférer un .webp animé voire une vidéo.
Le plus simple, c’est lorsque le site recevant les fichiers les optimise lui-même, dans ce cas : rien à faire. C’est par exemple le cas avec certains CMS (Wordpress, Sanity…) ou réseaux sociaux (Instagram, Youtube…).
Vous pouvez aussi convertir vos fichiers un par un en allant sur des sites comme Ezgif ↗ ou Squooch ↗, en utilisant Affinity ↗, ou avec le plugin Webp pour Photoshop ↗.
Si vous avez plusieurs fichiers dans plusieurs dossiers, alors le mieux est d’utiliser votre terminal pour tout convertir d’un coup. Je vais partager ici ma méthode. Ces commandes parcourent automatiquement le dossier courant et tous ses sous-dossiers, en conservant la structure originale.
Installer Homebrew ↗ (gestionnaire de paquets) :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Installer les outils nécessaires
brew install webpbrew install ffmpegSe rendre dans le dossier où se trouvent les médias
Services › Nouvel onglet de terminalcd ~/Desktop/projet/medias avec l’adresse correspondante, et toujours relative à l’emplacement où votre terminal est. Vous pouvez avancer dossier par dossier, et vérifier votre avancée en tapant ls après chaque mouvement. Pour remonter à un dossier parent, c’est cd ../Une fois que tous ceci est fait, convertir tous les médias du dossier dans lequel votre terminal est placé et de ses sous dossiers.
Attention à bien vérifier les options sous la commande, et gardez des copies de vos fichiers originaux ailleurs.
find . -type f \ \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) \ ! -name "._*" -print0 \ -exec sh -c ' for img; do echo "Conversion image : $img" out="${img%.*}.webp" cwebp -q 80 -resize 1200 0 \ "$img" -o "$out" && \ rm "$img" && \ echo "✅ $out" echo "---------------------------------------" done ' _ {} +Pour ajouter d’autres extensions de fichiers, par exemple .tiff, ajoutez -o -iname "*.tiff" dans la deuxième ligne, à la suite des autres.
Si vous souhaitez avoir un nom différent, ça se passe entre les guillemets de la ligne out (mais pas entre les accolades).
Par exemple : out="${img%.*}-converted.webp"
C’est à la ligne commençant par cwebp.
-q 80-resize 1200 0. Ça n’est pas du tout obligatoire de préciser ce paramètre.C’est à la ligne commençant par rm. Si vous souhaitez conserver le fichier original, supprimez cette ligne.
find . -type f \ \( -iname "*.mp4" -o -iname "*.mov" -o -iname "*.mkv" -o -iname "*.avi" \) \ ! -name "._*" -print0 | \ while IFS= read -r -d '' file; do tmp="${file}.tmp.mp4"
ffmpeg -nostdin -y -v 10 -i "$file" \ -vf "scale=-2:720:flags=lanczos" \ -c:v libx264 -preset medium -crf 23 -profile:v high -pix_fmt yuv420p \ -c:a aac -b:a 128k \ -movflags +faststart \ "$tmp"
if [ $? -eq 0 ]; then mv "$tmp" "$file" echo "✅ $file" else echo "❌ $file" rm "$tmp" fi doneMême système que pour les images.
Ici les vidéos sont redimensionnées en 720p grâce à scale=-2:720.
Pour passer à 480p, remplacer 720 par 480. Pour ne pas redimensionner, supprimer la ligne -vf entière.