49 votes

Comment générer un GIF à partir d'avi en utilisant ffmpeg?

J'essaie d'extraire une partie d'une vidéo dans 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 folle. Cependant, lorsque je génère une image gif en utilisant:

ffmpeg -i video.avi -t 10 out%d.gif

Il génère une qualité acceptable des images GIF. Comment puis-je générer un gif animé en utilisant la première commande mais avec la même qualité que la deuxième commande?

64voto

Tommy Strand Points 690

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

ffmpeg -i video.avi -t 10 out%02d.gif

alors

gifsicle --delay=10 --loop *.gif > anim.gif

La qualité est assez bonne. Vous pouvez trouver gifsicle ici

Edit: mis à Jour le post pour refléter Alex Kahn suggestions.

0voto

Profane Points 840

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X