|

Générer une vidéo simple à partir d’images

Parfois il est utile de pouvoir regrouper des images sous forme d’une vidéo MP4 toute simple, juste pour faire un diaporama. Vous allez me dire, Google Photo le fait, oui MAIS ce truc a la mauvaise idée de recadrer, et donc de zapper la moitié de vos captures d’écran par exemple, pas génial donc.

Voici le script generevideo.sh qui va tout solutionner :

#!/bin/sh

# 1. Configuration du nom de sortie
printf "Nom de la vidéo (par défaut 'video.mp4') : "
read input_name
if [ -z "$input_name" ]; then
    OUTPUT="video.mp4"
else
    # On ajoute .mp4 si l'utilisateur l'a oublié
    case "$input_name" in
        *.mp4) OUTPUT="$input_name" ;;
        *)     OUTPUT="$input_name.mp4" ;;
    esac
fi

TEMP_LIST="list_clips.txt"
DUR=3
printf "" > "$TEMP_LIST"

# 2. Découverte et choix du fichier audio
echo "Recherche de fichiers audio..."
i=1
AUDIO_FILES=$(ls *.mp3 2>/dev/null)

if [ -z "$AUDIO_FILES" ]; then
    echo "Aucun fichier .mp3 trouvé dans le dossier."
    AUDIO_INPUT=""
else
    echo "Choisissez la musique (tapez le numéro ou Entrée pour aucune) :"
    for f in $AUDIO_FILES; do
        echo "$i) $f"
        i=$((i + 1))
    done

    printf "Votre choix : "
    read choix

    if [ -n "$choix" ]; then
        AUDIO_INPUT=$(echo "$AUDIO_FILES" | sed -n "${choix}p")
    fi
fi

if [ -n "$AUDIO_INPUT" ]; then
    echo "Musique sélectionnée : $AUDIO_INPUT"
else
    echo "Aucune musique sélectionnée."
fi

# 3. Création de clips individuels (respect total de la taille d'origine)
images=$(ls tmm* 2>/dev/null | sort -V)

for f in $images; do
    if ffmpeg -v error -i "$f" -f null - 2>/dev/null; then
        echo "Traitement de $f..."
        # On force l'arrondi à 2px (parité obligatoire) sans changer la taille réelle
        ffmpeg -y -loop 1 -i "$f" -t "$DUR" \
            -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2:(ow-iw)/2:(oh-ih)/2:black,format=yuv420p" \
            -c:v libx264 -pix_fmt yuv420p -r 25 "part_$f.ts"
        
        echo "file 'part_$f.ts'" >> "$TEMP_LIST"
    fi
done

# 4. Assemblage final
if [ -s "$TEMP_LIST" ]; then
    echo "Fusion finale vers $OUTPUT..."
    if [ -n "$AUDIO_INPUT" ] && [ -f "$AUDIO_INPUT" ]; then
        ffmpeg -y -f concat -safe 0 -i "$TEMP_LIST" -i "$AUDIO_INPUT" \
            -c copy -c:a aac -shortest "$OUTPUT"
    else
        ffmpeg -y -f concat -safe 0 -i "$TEMP_LIST" -c copy "$OUTPUT"
    fi
else
    echo "Erreur : Aucun fichier valide n'a été traité."
    exit 1
fi

# 5. Nettoyage et rapport
rm -f part_tmm* "$TEMP_LIST"
echo "------------------------------"
echo "Fichiers images utilisés :"
echo "$images"
echo "------------------------------"
if [ -n "$AUDIO_INPUT" ]; then
    echo "Audio utilisé : $AUDIO_INPUT"
fi
echo "Vidéo générée : $OUTPUT"
echo "vidéo terminée"

Chaque image s’affichera durant 3 secondes, mais tu peux sans soucis régler ce temps à volonté depuis le script. Tu peux même ajouter un fichier audio au format mp3, le script demandera quel fichier utiliser.
Place le script dans le répertoire de tes images, lance le script avec bash generevideo.sh . Il va demander le nom de la video (video.mp4) par défaut, et le fichier audio à choisir s’il existe.

Vous obtiendrez un list.txt qui listera les images détectées, pratique pour vérifier si besoin.
Ce script a été initialement généré par Gemini, puis modifié.

Publications similaires

  • |

    Bbox Sagem : Hadopi-ready !

    Quelle surprise lors de la récente bascule sur une connexion ADSL Bouygues Telecom et plus précisément lors de l’installation de la BBOX livrée avec : le cryptage par défaut est WEP ou WPA, deux cryptages qui ne résistent pas très longtemps aux tentatives d’intrusion comme vous le savez déjà. C’est donc sans détour que nous pouvons donc considérer les Bbox comme Hadopi-ready, prêtes à subir les intrusions extérieures de la part des plus geeks qui trouveront là un accès fabuleux…

  • |

    Free : le sévisse clients le plus stupide ?

    Oui, encore un billet sur Free, mais il faut dire qu’ils font fort dans la bêtise. Voici l’email reçu récemment pour une Freebox Crystal (la box tupperware) retournée fin Juillet : Bonjour, Nous avons bien reçu votre demande de résiliation de votre abonnement Freebox pour la ligne xxxxxxxx le vendredi 22 juillet 2016. Cependant nous vous informons n’avoir toujours pas reçu l’équipement terminal mis à votre disposition pour la durée de votre abonnement. Nous vous rappelons que cet équipement doit être restitué à…

  • |

    WiDi, complément du WiFi

    Intel s’investit dans une nouvelle norme de diffusion des informations sans fil, le WiDi. Auparavant, tout passait par un ou plusieurs câbles : il fallait venir se relier à sa TV pour afficher les photos de son ordinateur ou voir un film, se relier à sa chaine HiFi pour diffuser la musique en streaming depuis Jamendo.com, etc. Avec le WiDi, tout ceci devient inutile, à condition d’avoir des périphériques adaptés bien entendu. Il vous faudra ainsi investir dans un adaptateur…

  • Vraiment emballé !

    Oui, vraiment emballé, c’est du moins le cas de pratiquement tous les matériels que nous recevons. Les constructeurs rajoutent des tas de couches, des tas de carton ou de plastique. Prenez un routeur WiFi que nous allons modifier pour le configurer sur KaSat Tooway par exemple : un carton d’entourage avec de jolies photos, un carton d’emballage, qui contient encore des tas de papiers de pub et encore un carton pour entourer le produit. Pfiouuu, que de papier pour rien,…

  • L’avenir des connexions internet : différencier !

    La bascule chez Ovh ADSL me fait m’interroger sur l’avenir de nos connexions internet : triple play, quadruple play, ou une simple connexion permettant d’accéder à des services en streaming ? J’ai tendance à penser que l’avenir pourrait fort bien se transformer, abandonnant le triple play (TV, téléphonie, internet) que l’on nous a promptement présenté comme une révolution voici quelques années, pour revenir vers du simple ou double play : connexion internet sans filtrage, téléphonie illimitée sur fixes et mobiles,…

  • |

    Toto, tata, tonton, tatie, tutu, tototte & Co : ben non !!!

    Je l’ai déjà dit et je vais le redire clairement, même si cela doit choquer et heurter : sur un blog, toute discussion est possible, tout avis est bon à lire, qu’on soit d’accord ou non. MAIS, comme en démocratie, ici on n’avance pas masqué, ici on ne se planque pas, ici on ne met pas des toto@toto.fr ou je ne sais quel email bidon, sous peine de ne pas voir ses commentaires, au demeurant fort intéressants et souvent argumentés,…

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.