Two days ago I was a bit bored doing home office. I love tea, and in between meetings and emails I decided to make myself one. Somehow I thought it was a great opportunity to create a stop-motion video. Never done it before in my life.
I set up the stage using two large books, two drum sticks and my iPhone. I plugged the earphones so I could shot the photo without touching the phone (this is very important to keep the stop-motion efect working).
After preparing the tea (and taking lots of photos of the process) I downloaded the images to my mac using Image Capture (a small software that comes with the mac. Just hit Cmd + Space and type Image Capture and hit enter).
Photos on my desktop, I started looking for different options to create my GIF file. I knew Google Photos creates animations, but I had 175 photos! That’s too much to handle by Google Photos.
I looked at some web pages that create GIF animations, and even watched a youtube demo on how to create GIFs in Fireworks (designers, please don’t hate me. I still use Fireworks).
Anyway, I found out some commands that could do the trick. And that’s what I finally ended up using.
Step 1: Make photos smaller
There’s a command called sips that allows you to change the size of images as a batch (that means many photos at once). This command comes with the mac already.
sips -Z 640 *.JPG
That command changes the size of all JPG files in a given folder to 640px (either vertically or horizontally depending on the orientation) keeping the aspect ration (so the largest side will be 640px).
Step 2: Create the animated GIF
Turns out there’s another command to do this.
convert -delay 15 -loop 0 *.JPG animated.gif
This command does not come with the mac. It’s part of what’s called ImageMagick, a suite of tools to edit images via command line. You can get it here or install it using Homebrew as explained in this answer at Stackoverflow.
This sample command creates a looping GIF with all .JPG files (in the same order as seen on the Finder) with a 15/100 of a second delay between images. You can tweak that number to suite your needs.
Step 3: Convert it to a video file (Optionally)
I did this to change the 54MB GIF file to a 7,5MB mp4 file. Guess what. I used another command.
ffmpeg -f gif -i animated.gif animated.mp4
And that’s it
As simple as that. Here’s the complete script I used.
# compress photos sips -Z 640 *.JPG # generate gif convert -delay 15 -loop 0 *.JPG animated.gif #convert gif to video (much smaller file size) ffmpeg -f gif -i animated.gif animated.mp4
And here is the stop-motion video I created.
Also published on Medium.