Comment générer des gif à partir d'avi à l'aide de ffmpeg?
Je suis en train d'extraire une partie d'une vidéo en un gif animé à l'aide de la commande suivante:
ffmpeg -i video.avi -t 5 out.gif
Il génère un gif animé mais la qualité est fou. Cependant lorsque je créer des gif image à l'aide de:
ffmpeg -i video.avi -t 10 out%d.gif
Il génère une qualité acceptable des images gif. Comment puis-je créer des gif animés à l'aide de la première commande, mais la même qualité que le deuxième commandement?
- Cela peut être pratique blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire en essayant de générer de haute qualité des gif animés à partir d'une série d'images extraites d'un film.
Pour certains motifs, le gif animé généré avec ffmpeg ne contient 103 couleurs assumable à l'aide d'un fixe 256 niveau de la palette de couleurs qui en résulte dans l'horrible résultat. Ma solution a été plutôt
puis
La qualité est assez bonne. Vous pouvez trouver gifsicle ici
Edit: mis à Jour le post pour refléter Alex Kahn suggestions.
ffmpeg
de sortie Png au lieu de GIFs pour éviter de la qualité de merde. FWIW, voici une belle écriture-up sur la création de GIFS dans Bash: blog.room208.org/post/48793543478seq -f %02g.gif start skip stop
au lieu de*.gif
dans le gifsicle de commande, vous pouvez sauterskip
images, en commençant àstart
et se terminant àstop
images. Assez utile. E. g.: gifsicle --delay=10 --boucleseq -f %02g.gif 1 3 156
> anim.gif Va commencer à la frame 1, sauter 3 images et de s'arrêter au cadre 156.gifsicle
ressemble pas du tout. dit "gifsicle.EXE: *.gif: argument non Valide" en réponse à votre commandeffmpeg -i input.mp4 -vf fps=fps=5 out%04d.gif; gifsicle --delay=20 --loop out*.gif > anim.gif; rm out*.gif;
Dans le cas de ffmpeg, si vous spécifiez plus faible FPS le nombre de fichiers est réduite. Dans le cas de gifsicle, vous avez besoin de retarder davantage pour compenser le manque de cadres. gifscile utilise une échelle de 1/100sec, qui 20/100 signifie 5FPS.gifsicle -O3
optimise gifs bien.Je n'ai pas fait un GIF animé avant, mais vous pouvez essayer en utilisant le taux de bits paramètre pour spécifier la qualité de l', en dépit du fait qu'il est une image (et sans doute ayant pas de taux). Miniature de qualité répond à l'-b paramètre. Si en fou, tu veux dire, "incroyablement mauvais", vous pouvez spécifier un très haut débit et le débit de la tolérance (pas sûr si vous êtes en utilisant vbr ou cbr source). (ou le contraire si vous dire que c'est trop bon et que vous souhaitez limiter la taille)
'-b', '10000000','-bt', '20000000'
Sinon, vous pouvez également modifier les dimensions en utilisant le paramètre-s, ce qui aura un ordinaire à la recherche de la représentation de l'dimensions comme "1920X1200".
Cela dépend vraiment du débit et de la compression de votre matériel source et ce que vous espérez le gif sera comme. Peut-être envisager de fournir plus d'info que "fou", mais j'imagine que cela va vous donner un bon départ de toute façon. Bonne chance