l’Almanet doLys Gnu/Linux – Open Source – Entreprises › Forums › L’almanet doLys Open Source › [Tuto] Créer des gifs animés de qualité à partir d’une vidéo › Répondre à: [Tuto] Créer des gifs animés de qualité à partir d’une vidéo
novembre 24, 2016 à 1:00 pm
#2979
kholo
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
}