{"id":1742,"date":"2024-10-23T17:41:11","date_gmt":"2024-10-23T15:41:11","guid":{"rendered":"http:\/\/www.gistlabs.net\/weblogs\/?p=1742"},"modified":"2026-03-29T20:59:29","modified_gmt":"2026-03-29T18:59:29","slug":"comment-faire-un-slideshow-dimages","status":"publish","type":"post","link":"https:\/\/www.gistlabs.net\/weblogs\/comment-faire-un-slideshow-dimages\/","title":{"rendered":"Comment faire un slideshow d&#8217;images en bash"},"content":{"rendered":"\n<p>Besoin de transformer un dossier d&#8217;images PNG en une vid\u00e9o rapidement ? Une seule commande <strong>ffmpeg<\/strong> suffit. Pas besoin d&#8217;\u00e9diteur vid\u00e9o, pas besoin d&#8217;interface graphique \u2014 juste le terminal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le script<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n# Chemin vers le dossier contenant les images\nIMAGE_DIR=\"images\"\n\n# Nom du fichier de sortie\nOUTPUT_VIDEO=\"output_video.mp4\"\n\n# V\u00e9rifier les fichiers dans le r\u00e9pertoire\necho \"Fichiers dans le r\u00e9pertoire :\"\nls \"$IMAGE_DIR\"\n\n# Commande ffmpeg pour cr\u00e9er la vid\u00e9o\nffmpeg -framerate 1.5 -pattern_type glob -i \"$IMAGE_DIR\/*.png\" -c:v libx264 -r 30 -pix_fmt yuv420p \"$OUTPUT_VIDEO\"\necho \"Vid\u00e9o cr\u00e9\u00e9e avec succ\u00e8s : $OUTPUT_VIDEO\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Explication des param\u00e8tres<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-framerate 1.5<\/code> \u2014 chaque image reste affich\u00e9e environ 0.67 seconde. Augmenter pour aller plus vite, diminuer pour un diaporama plus lent.<\/li>\n<li><code>-pattern_type glob -i \"images\/*.png\"<\/code> \u2014 prend toutes les images PNG du dossier, tri\u00e9es par ordre alphab\u00e9tique.<\/li>\n<li><code>-c:v libx264<\/code> \u2014 encode en H.264, le codec vid\u00e9o le plus compatible.<\/li>\n<li><code>-r 30<\/code> \u2014 la vid\u00e9o de sortie sera en 30 fps (n\u00e9cessaire pour la compatibilit\u00e9 avec la plupart des lecteurs).<\/li>\n<li><code>-pix_fmt yuv420p<\/code> \u2014 format de pixel standard, indispensable pour que la vid\u00e9o soit lisible partout (QuickTime, VLC, navigateurs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pr\u00e9requis<\/h3>\n\n\n\n<p>Installer ffmpeg : <code>brew install ffmpeg<\/code> sur macOS, <code>sudo apt install ffmpeg<\/code> sur Debian\/Ubuntu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variantes utiles<\/h3>\n\n\n\n<p>Pour des JPG : remplacer <code>*.png<\/code> par <code>*.jpg<\/code>. Pour un diaporama plus lent (3 secondes par image) : <code>-framerate 0.33<\/code>. Pour ajouter une musique de fond : ajouter <code>-i musique.mp3 -shortest<\/code> avant le fichier de sortie.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Besoin de transformer un dossier d&#8217;images PNG en une vid\u00e9o rapidement ? Une seule commande ffmpeg suffit. Pas besoin d&#8217;\u00e9diteur vid\u00e9o, pas besoin d&#8217;interface graphique \u2014 juste le terminal. Le script Explication des param\u00e8tres -framerate 1.5 \u2014 chaque image reste affich\u00e9e environ 0.67 seconde. Augmenter pour aller plus vite, diminuer pour un diaporama plus lent. &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.gistlabs.net\/weblogs\/comment-faire-un-slideshow-dimages\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":1747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,13],"tags":[560,228,405,29,561],"class_list":["post-1742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-unix","tag-bash","tag-how-to","tag-image","tag-linux","tag-script","item-wrap"],"_links":{"self":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/1742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/comments?post=1742"}],"version-history":[{"count":4,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/1742\/revisions"}],"predecessor-version":[{"id":1877,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/1742\/revisions\/1877"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/media\/1747"}],"wp:attachment":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/media?parent=1742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/categories?post=1742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/tags?post=1742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}