Répondre à: [Tuto] Créer des gifs animés de qualité à partir d’une vidéo

#2979
Avatarkholo
Participant

    salut,
    je commence le script en bash ;
    juste des fonctions pour commencer !

    function Mp42Gifplus {
    # VARIABLES
    # pour la partie 1
    	PALETTE="/home/jlfh0816/Vidéos/palette.png"
    	FPS=10
    	SCALE=320
    	FLAGS='lanczos'
    # pour la partie 2
    	FILER_COMPLEX="fps=$FPS,scale=$SCALE:-1:flags=lanczos[x];[x][1:v]paletteuse"
    
    # étape 1 : génération d’une palette de couleurs
    # ffmpeg -y -i /home/jlfh0816/Vidéos/source.mp4 -vf fps=10,scale=320:-1:flags=lanczos,palettegen /home/jlfh0816/Vidéos/palette.png
    	ffmpeg -y -i $SOURCE -vf fps=$FPS,scale=$SCALE:-1:flags=$FLAGS,palettegen $PALETTE
    
    # étape 2 : génération du GIF animé «amélioré»
    # ffmpeg -i /home/jlfh0816/Vidéos/source.mp4 -i /home/jlfh0816/Vidéos/palette.png -filter_complex "fps=10,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" /home/jlfh0816/Vidéos/final.gif
    	ffmpeg -i $SOURCE -i $PALETTE -filter_complex $FILER_COMPLEX $DESTINATION
    
    # étape 3 : supprimer la palette ?
    	# rm $PALETTE
    }

    pour les autres ça donne ça :

    function Mov2Mp4 {
    	# ffmpeg -i /home/jlfh0816/Vidéos/source.MOV -vcodec libx264 /home/jlfh0816/Vidéos/source.mp4
    	ffmpeg -i $SOURCE -vcodec libx264 $DESTINATION
    }
    function Mp42Gifclassique {
    # Création d’un GIF animé, méthode «classique»
    # A) gif contenant toute la vidéo
    # ffmpeg  -i  /home/jlfh0816/Vidéos/source.mp4  -s  320x180 /home/jlfh0816/Vidéos/final.gif
    ffmpeg -i $SOURCE -s $RESOLUTION $DESTINATION
    }
    function Mp42Gif2classique {
    # B) gif d’une partie de la vidéo seulement
    # Dans ce cas de figure, 
    # la taille du gif est arbitrairement fixée à 2 Mo maximum 
    # et c’est donc la durée du gif qui va devoir s’adapter pour rester en-dessous de 2 Mo.
    
    # Si vous voulez que le gif démarre en même temps que la vidéo, vous remplacez 10 par 0 ;
    # DEBUT en secondes depuis le début de la vidéo originale
    # DUREE
    ffmpeg  -y -ss $DEBUT -t $DUREE -i  $SOURCE -s $RESOLUTION $DESTINATION
    }