« Traitement d'images et de vidéos » : différence entre les versions

Techniques d'optimisation pour GIF ( 😭 )
 
(6 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 4 : Ligne 4 :
* [https://www.gimp.org/ GIMP] (gratuit et open-source, disponible sous Windows ou Linux) pour toutes les images raster (photographies, etc.),
* [https://www.gimp.org/ GIMP] (gratuit et open-source, disponible sous Windows ou Linux) pour toutes les images raster (photographies, etc.),
* [https://kdenlive.org/ Kdenlive] ou [https://shotcut.org/ shotcut] (gratuits et open-source, disponibles sous Windows ou Linux) pour éditer des vidéos.
* [https://kdenlive.org/ Kdenlive] ou [https://shotcut.org/ shotcut] (gratuits et open-source, disponibles sous Windows ou Linux) pour éditer des vidéos.
* Pour toute vidéo, il est fortement recommandé de la recompiler avec [https://handbrake.fr/ handbrake] pour être sûr que ça fonctionne dans toutes circonstances. Sauf sur YouTube où tout est réencodé de toutes manières par eux, mais les usages "film à la maison", "présentation powerpoint", "je veux pouvoir le lire sur smartphone, sur mac, sur le grille-pain connecté", c'est indispensable. Le logiciel peut sembler un peu barbare, néanmoins vous avez des préréglages qui fonctionnent bien, et si vous laissez le curseur sur un bouton que vous ne comprenez pas, un texte explicatif apparait. Pour la plupart des usages, je recommande de choisir h264/x264, et la définition correspondant à la vidéo d'origine (720p, 1080p, etc.).
* Pour toute vidéo, il est fortement recommandé de la recompiler avec [https://handbrake.fr/ handbrake] pour être sûr que ça fonctionne dans toutes circonstances. Sauf sur YouTube où tout est réencodé de toutes manières par eux, mais les usages "film à la maison", "présentation powerpoint", "je veux pouvoir le lire sur [[smartphone]], sur mac, sur le grille-pain connecté", c'est indispensable. Le logiciel peut sembler un peu barbare, néanmoins vous avez des préréglages qui fonctionnent bien, et si vous laissez le curseur sur un bouton que vous ne comprenez pas, un texte explicatif apparait. Pour la plupart des usages, je recommande de choisir h264/x264, et la définition correspondant à la vidéo d'origine (720p, 1080p, etc.).


En lignes de commandes (gratuit et open-source) uniquement :
En lignes de commandes (gratuit et open-source) uniquement :
Ligne 14 : Ligne 14 :


Sous Linux, FFMPEG et Imagemagick sont en général installés par défaut.
Sous Linux, FFMPEG et Imagemagick sont en général installés par défaut.
== Les formats ==
=== Images ===
* SVG : le meilleur format vectoriel. L'image peut agrandie indéfiniement sans problématique de pixelisation.
* [https://fr.wikipedia.org/wiki/Portable_Network_Graphics PNG] : le meilleur format pour des images avec logos, peu de couleurs, etc. Pour compresser des images PNG, je vous invite à utiliser l'utilitaire [https://sourceforge.net/projects/optipng/ optipng].
* JPG : le meilleur format pour des photos, avec beaucoup de couleurs différentes, etc. Explications de son fonctionnement ici : https://sebsauvage.net/comprendre/jpeg/index.html
* Voir aussi : https://lehollandaisvolant.net/tuto/html.php
=== Vidéos ===
Les vidéos avec audio sont mises dans des "conteneurs". Ce conteneur peut être MP4, MKV, WEBM, et autres. Je recommande le conteneur MKV pour des vidéos longues et enregistrées localement (films par exemple). Je recommande WEBM pour des contenus partagés sur le web.
* '''H264''' : le format principal utilisé en '''MP4'''. Excellent, assez compatible, basé sur le JPEG.
* '''VP9''' : le format principal utilisé en '''WEBM'''. Encore plus compact, compatible avec tous les navigateurs web, basé sur le JPEG.
* H265 (HEVC) : le nouveau format MP4. Attention, peut poser des problèmes de compatibilité sur certains appareils, notamment tout ce qui est disque dur non SSD…
* APNG : basé sur le PNG, permet de faire une vidéo pas lourde de fichiers PNG, meilleure alternative au GIF.
* GIF : à éviter, obsolète, fait comme l'APNG mais moins bien.


== Lignes de commandes utiles avec FFMPEG & Imagemagick ==
== Lignes de commandes utiles avec FFMPEG & Imagemagick ==
Voir aussi : https://sebsauvage.net/wiki/doku.php?id=ffmpeg
=== Installation ===
sudo apt-get install imagemagick


=== Liste ===
sudo apt-get install ffmpeg


==== Extraire les images une par une d'un GIF ====
=== Extraire les images une par une d'un GIF ===
  convert -coalesce brocoli.gif out%05d.pgm
  convert -coalesce brocoli.gif out%05d.pgm


==== Convertir un GIF en vidéo ====
=== Extraire les images une par une d'une vidéo, une image tous les 15ème de secondes ===
ffmpeg -i input.webm -r 15 -f image2 image-%06d.png
https://stackoverflow.com/q/19539457
 
=== Convertir un GIF en vidéo ===
  ffmpeg -i input.gif output.webm
  ffmpeg -i input.gif output.webm


==== Changer le format d'une vidéo ====
=== Changer le format d'une vidéo ===
  ffmpeg -i input.mp4 output.webm
  ffmpeg -i input.mp4 output.webm


==== Créer une vidéo à partir d'une séquence de photos ====
=== Créer une vidéo à partir d'une séquence de photos ===
  convert -delay 600 *.png movie.mp4
  convert -delay 600 *.png movie.mp4


==== Extraire l'audio d'une vidéo avec FFMPEG ====
=== Extraire l'audio d'une vidéo avec FFMPEG ===
  ffmpeg -i input.mp4 -vn output.mp3
  ffmpeg -i input.mp4 -vn output.mp3


==== Supprimer l'audio d'une vidéo avec FFMPEG ====
=== Supprimer l'audio d'une vidéo avec FFMPEG ===
  ffmpeg -i input.mp4 -an mute-output.mp4
  ffmpeg -i input.mp4 -an mute-output.mp4


==== Changer la vitesse d'une vidéo ====
=== Changer la vitesse d'une vidéo ===
Le paramètre 0.5 multiplie par 0.5 la durée de la vidéo. Ainsi, avec 0.5 on double la vitesse de la vidéo. Pour ralentir, mettre un paramètre supérieur à 1.
Le paramètre 0.5 multiplie par 0.5 la durée de la vidéo. Ainsi, avec 0.5 on double la vitesse de la vidéo. Pour ralentir, mettre un paramètre supérieur à 1.
  ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
  ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv


==== Retirer les passages sans changements d'une vidéo longue ====
=== Retirer les passages sans changements d'une vidéo longue ===
Usage typique, montrer en accéléré quelque chose d'enregistré, cette méthode permet de retirer les passages où l'image est statique sans changements de façon automatisée, plutôt que de devoir le faire en édition vidéo. Attention car il faut que la vidéo soit encodée "proprement" (avec handbrake par exemple), sinon ça cause facilement des bugs.
Usage typique, montrer en accéléré quelque chose d'enregistré, cette méthode permet de retirer les passages où l'image est statique sans changements de façon automatisée, plutôt que de devoir le faire en édition vidéo. Attention car il faut que la vidéo soit encodée "proprement" (avec handbrake par exemple), sinon ça cause facilement des bugs.
  ffmpeg -y -i in.mp4 -vf mpdecimate,setpts=N/FRAME_RATE/TB out.mp4
  ffmpeg -y -i in.mp4 -vf mpdecimate,setpts=N/FRAME_RATE/TB out.mp4
Ligne 51 : Ligne 77 :
  ffmpeg -safe 0 -f concat -i list.txt -c copy output.mp4
  ffmpeg -safe 0 -f concat -i list.txt -c copy output.mp4
à noter que les fichiers doivent avoir des noms simples sans caractères spéciaux et que le paramètre <code>-strict -2</code> peut être à rajouter après le <code>-c copy</code>.
à noter que les fichiers doivent avoir des noms simples sans caractères spéciaux et que le paramètre <code>-strict -2</code> peut être à rajouter après le <code>-c copy</code>.
=== Générer un PNG animé à partir d'une séquence de photos ===
(Meilleure alternative au GIF, mais attention toujours destiné aux logos, dessins, clipart, etc, avec peu de couleurs sur l'animation.)
magick -delay 100 -loop 0 image-1.png image-2.png image-3.png APNG:myanimation.png
https://stackoverflow.com/a/69715802


== Le GIF ==
== Le GIF ==
Ligne 86 : Ligne 117 :
|100%
|100%
|}
|}
=== Créer un GIF à partir d'une série d'images ===
convert -delay 20 -loop 0 *.jpg myimage.gif
https://askubuntu.com/a/648245


=== Optimiser un GIF pour réduire sa taille ===
=== Optimiser un GIF pour réduire sa taille ===
Ligne 109 : Ligne 144 :


voir ici : https://stackoverflow.com/a/47343340
voir ici : https://stackoverflow.com/a/47343340
=== Optimiser les images ===
convert *.jpg -resize x1000 output.jpg
x devant permet de recouper la hauteur, la largeur dans le x
[[Catégorie:Informatique]]
[[Catégorie:Informatique]]