Thought I’d try my hand at stringing together as many images as I could in a time-lapse video, capturing a busy party on a picturesque static background as it melted into the night. It turned out well!
A DSLR camera hooked up to an intervalometer captured every 90 seconds and FFmpeg transformed and packaged it up into a high-quality video. Specifically, an Olympus E-510 with a 12-60 mm zoom shot full manual — in hindsight, a mistake to not use auto or aperture priority — set on a short ~30 cm tripod.
This was a learning experience, as I normally use FFmpeg to transcode video from one format to another. It’s command line interface can seem quirky. For instance, the 270 images had to be numbered in sequence from 1 to 270, not the index my camera had assigned. To change this I tried to create a set of local symbolic links enumerated correctly, pointing to the photos on my media server, as per the FFmpeg documention.
iMac:~ pillowfort$ cd /Volumes/Public/*Pictures/*2012-07-08*/cabin iMac:cabin pillowfort$ $x=1; for i in *JPG; do counter=$(printf %03d $x); ln "$i" ~/tmp/img"$counter".jpg; x=$(($x+1)); done
This didn’t work! I think there was an issue following the sym-links across my network. Anyway, my kludge fix was to physically copy the stills locally.
iMac:cabin pillowfort$ $x=1; for i in *JPG; do counter=$(printf %03d $x); cp "$i" ~/tmp/img"$counter".jpg; x=$(($x+1)); done
I made two versions: one 1080×1920 (1080p) and one 640×480 (VGA).
-r 9 means 9 frames per second, which translates into a 30 second video from 270 images.
iMac:~ pillowfort$ ffmpeg -r 9 -f image2 -i img%03d.jpg -qscale 2 -s hd1080 outHD.mp4 iMac:~ pillowfort$ ffmpeg -r 9 -f image2 -i img%03d.jpg -qscale 2 -s vga outVGA.mp4
I like how the stars move near the end of the sequence.