Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
626 views
in Technique[技术] by (71.8m points)

windows - Create animated gif from a set of jpeg images

I need something that can be scripted on windows 7. This image will be used in banners.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Simon P Stevens' answer almost got me there:

ffmpeg -f image2 -i image%d.jpg video.avi
ffmpeg -i video.avi -pix_fmt rgb24 -loop_output 0 out.gif

Let's see if we can neaten this up.

Going via an avi is unnecessary. A -pix_fmt of rgb24 is invalid, and the -loop_output option prevents looping, which I don't want. We get:

ffmpeg -f image2 -i image%d.jpg out.gif

My input pictures are labeled with a zero-padded 3-digit number and I have 30 of them (image_001.jpg, image_002.jpg, ...), so I need to fix the format specifier

ffmpeg -f image2 -i image_%003d.jpg out.gif

My input pictures are from my phone camera, they are way too big! I need to scale them down.

ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299 out.gif

I also need to rotate them 90 degrees clockwise

ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299,transpose=1 out.gif

This gif will play with zero delay between frames, which is probably not what we want. Specify the framerate of the input images

ffmpeg -f image2 -framerate 9 -i image_%003d.jpg -vf scale=531x299,transpose=1 out.gif

The image is just a tad too big, so I'll crop out 100 pixels of sky. The transpose makes this tricky, I use the post-rotated x and y values:

ffmpeg -f image2 -framerate 9 -i image_%003d.jpg -vf scale=531x299,transpose=1,crop=299,431,0,100 out.gif

The final result - I get to share my mate's awesome facial expression with the world:

Example of an animated gif created with ffmpeg


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...