This page is part of my survey on how to make movies.
You can create a movie from an image sequence using iMovie'09
. It comes with every new Mac, so for the occasional animator this is a simple way to get going. Although it's easy to work with movie clips (combine them, edit them, add sound etc.), it's not so straightforward to make "flip-book" animations (a.k.a. time-lapse movies) from a sequence of images.
The steps shown here let you make a basic animation with sound. There are other free applications that can make animations without sound, e.g., Time Lapse Assembler. The iMovie
approach is more complicated but rewards you with more editing flexibility, including sound.
Another approach to do the same thing, but platform-independent (and open-source), is to use the 3D modeling software Blender.
A limitation of iMovie '09
is that single images can't be played back at the fastest frame rate of 30 fps
appropriate for NTSC video. However, if the frame rate is too slow for your purposes, you can always speed up the end result later. This is the first method I'll describe.
There is one drawback: if you have to work with a slow frame rate that doesn't correspond to real time, it gets difficult to synchronize sounds. Imagine you have an existing sound file and want to adjust the frame durations to that sound; then you need to edit your clips in real-time. Therefore, I also tried an alternative solution: first convert each frame image to a one-frame movie, then import these movies and string them together to make your animation. With this trick, you can coax iMovie '09
into producing a 30 fps
frame rate.
To begin, import the image sequence into iPhoto
by drag-and-drop. Then open iMovie and follow these steps:
iPhoto
,because then you'll immediately find them under that same folder name in iMovie's
image browser.
iMovie
, create a New Project, call it (e.g.) "StopMotion"
iMovie
, open the media browser,iPhoto
library, shown in the media browser:Window > Clip Adjustments
. Type in a duration such as 0.05
and check the box for "Apply to all stills":
Done
.
0.1s
. That's too slow for a smooth movie with fast-moving objects. The work-around for this involves some arithmetic: say you want the shortest frame in your animation to be 0.025
seconds long. Then set its duration to the minimum of 0.1s
for now, and scale up the durations of all other frames in your animation by the corresponding factor of 4
. You will then be exporting a movie that looks four times slower than desired. However, we'll fix this with one additional step at the end. Let's first complete the settings for exporting the movie.
Window > Cropping, Ken Burns and Rotation
:"Fit"
.
1:23
(seconds separated by a colon from milliseconds), or 0.2
(to specify fractions of a second). Press Enter
or Done
to make the change stick!
Window > Audio Adjustments
:Share
menu, choose Export using Quicktime
(adjust preferences if needed):New Project
and go to File > Import > Movie...
to re-import your newly created movie back into iMovie.
Window > Clip Adjustments
as we did earlier for the still images. But unlike before, you'll now see an entry "Speed"
(depending on the format of the imported movie, you may need to click a "convert" button before you can change this setting). A slider will appear that lets you speed up the movie:Share > Export using Quicktime
and export the movie at the new speed.
This is an alternative approach which lets you import still frames with a shorter per-frame duration. I chose to aim for a duration of 0.03 seconds
because that corresponds to the 30 frames per second
at which iMovie exports movies (when set to NTSC format in the Preferences).
In principle, you can reduce the frame duration even further, but I noticed that when I do so it sometimes causes iMovie
to lose track of the order of the imported movie clips when dragging them into a project. This is undesirable because you may then have to manually sort the frames. So the 0.03 s
duration is what I consider safe, as it is also the shortest duration allowed by the old version, iMovie HD
.
.mov
format. Here is a python script that does that.
mov
files will be created next to the original images.
$PATH
, say at ~/bin/processStills.py
. Make it executable by typing chmod 700 ~/bin/processStills.py
#!/usr/bin/python import sys,os,string from Foundation import NSNumber from AppKit import NSImage from QTKit import * def process(file): outfileName = string.join([os.path.splitext(os.path.abspath(file))[0],"mov"],".") print "creating ",outfileName mov, err = QTMovie.alloc().initToWritableFile_error_(outfileName, None) if mov is None: errmsg = "Could not create movie file: %s" % (outfileName) raise IOError, errmsg img = NSImage.alloc().initWithContentsOfFile_(file) mov.addImage_forDuration_withAttributes_(img, time, attrs) mov.updateMovieFile() # Change this to QTMakeTime(10, 600) for even shorter frames: time = QTMakeTime(20, 600) attrs = {QTAddImageCodecType: "jpeg", QTAddImageCodecQuality: NSNumber.numberWithLong_(codecHighQuality)} for f in sys.argv[1:]: process(f)
movieStillFolder
in your home directory, do this:
cd ~/movieStillFolderIf they are
jpg
images, type ~/bin/processStills.py *.jpg
.
iMovie
:
mkdir movies mv *.mov movies/
iMovie
, import the above movie clips and drag them into a new project (no need to optimize them at the import stage).
i
to inspect the frame rates. To make changes, you first have to select convert all clips
, which will possible take some time to complete.
Copy
and Paste
it as many times as is needed.