rendez-vous sur ArraKISS
Archives ContactATOM
whoami@ybad.name
# find . -iname

    VP9, PNG et JPG pour limiter l’utilisation de bande passante

    Quand on doit partager des vidéos ou des photos à la famille, ou même lorsqu’on héberge un site, je pense qu’il est important de garder en tête l’idée de limiter la quantité de données à transférer :

    Ici, je vais recenser comment optimiser les images et les vidéos tout en gardant une qualité correcte.

    VP9 : encodage vidéo

    L’encodage VP9 permet de produire des .webm dont la taille est ridiculement petite. À titre de comparaison :

    Il existe de nombreuses options pour l’encodage. Pour ma part, je me contente de la “qualité constante”. Vous encoder toute une série de vidéos, ça donnerait :

    convert2webmvp9 *.avi
    

    Le script en question (convert2webmvp9) contient ces lignes :

    #!/bin/sh
    # require ffmpeg
    # convert video to webm using vp9 encoder
    
    for i in $@; do
      j="${i%.*}"
      ffmpeg -i ${i} -c:v libvpx-vp9 -b:v 0 -crf 32 -pass 1 -an -row-mt 1 -f webm /dev/null -y && \
      ffmpeg -i ${i} -c:v libvpx-vp9 -b:v 0 -crf 32 -pass 2 -c:a libopus -row-mt 1 ${j}.webm
    done
    

    Pour augmenter la qualité, il faut changer le paramètre -crf 32 :

    Plus le nombre est faible, plus la qualité est grande.

    PNG : optipng

    Une seule commande suffit à optimiser les images png : optipng

    JPG : GraphicsMagick

    Avec GraphicsMagick ou ImageMagick (le premier étant plus rapide), la commande convert permet d’optimiser une image jpg en mode progressif :

    gm convert image.jpg -strip -quality 70 -interlace line image.jpg
    

    Optimiser toutes les images

    J’ai un petit script qui fait ça : (imgopti)

    imgopti *.jpg *.png