I actually made this video well over a year ago, but realized recently that documenting the process is probably worthwhile, if only to start a new category of non-travel blog posts. What follows is slightly instructional, but with a heavy dose of details of my specific scenario.
To make a time-lapse video from individual photos, you’ll need a tripod, shutter release timer, and software for compiling the video file. You’ll probably also use your favorite photo editing software to touch up the photos before combining them, so you’ll want something that supports batch processing in some capacity.
Shutter release timers aren’t universal, so you’ll have to do some research to find one that is compatible with your camera. In my case, this Neewer LCD timer works with my Canon 60D and was also the top seller on Amazon, so it was a pretty easy decision.
After you’ve set up your camera and tripod, you’ll need to configure the timer settings. Most obviously, you’ll set how often you want a photo to be taken, but you’ll also need to adjust your camera’s exposure settings appropriately for the situation. In my case, I wanted to capture a cityscape during sunset over the span of several hours, so I had to account for the fact that the available light in the scene would be dropping drastically during that time. I opted for aperture-priority mode, knowing that the camera would adjust the shutter speed on its own. I chose an aperture of f/7.1, which was small enough to keep everything in focus, but not excessively small (more on that below).
Once I had set up my camera and tripod in the apartment (putting the camera as close to the window as I could manage), I configured the timer to take a photo every 10 seconds, carefully tip-toed away, and busied myself at a coffee shop for a while. When I checked the results a few hours later, I found that – not surprisingly – my camera battery had died, but not before I got over a thousand photos (1,023 to be exact).
After transferring all the photos to my laptop and loading them in Lightroom, I inspected the shutter speed timings in the EXIF data. At the beginning of the shoot, the camera was selecting 1/500; by the end, each photo was an 8-second exposure. I had unknowingly picked a pretty good aperture. If it was any larger, I would run the risk of parts of the scene being out of focus; if it was any smaller, then the exposures at the end of the shoot may have been too long. My camera has a limit of 30 seconds for an exposure, so a smaller aperture would have possibly resulted in under-exposed photos as the camera ran into the 30-second limit. Anyone shooting a time-lapse in conditions of changing light should be aware of these kinds of boundaries (in either direction).
Now that you have all your photos handy, this is the time to perform any batch processing you need done, like cropping or fixing the exposure or adjusting color levels. For example, if you want a 16:9 video in the end, you need to crop appropriately, since your photos are most likely 3:2. In my case, I noticed that a smudge on the inside of the window showed up in all my photos. This was pretty trivial to fix in Lightroom: I applied the Spot Removal tool on one of the photos where the smudge was very evident, then copied that action to all the other photos. Done!
Video resolution also needs to be considered at this point. In my case, I wanted the final video to be 1080p, so I applied a resize operation during my Lightroom export process. Depending on what software you’re using, you could either resize the photos during export or export full-size photos and resize during the video conversion.
After applying your edits and exporting the photos, it’s now time to combine all the photos and render a video file. There are certainly lots of software packages out there that can do this, but I decided to go with FFmpeg, a very popular library for playing or converting pretty much any audio or video type in existence. The command-line tool is difficult to use and has an overwhelming number of options, but after some Googling, I found an invocation that did the job:
ffmpeg -f image2 -framerate 20 -i IMG_%04d.jpg -vcodec libx264 -pix_fmt yuv420p output.mp4
Here’s a quick explanation of the options:
-f image2
forces the tool to read the input as image files-framerate <n>
specifies the framerate (images per second)-i <pattern>
specifies how the tool should locate the input files-vcodec <name>
specifies the video codec (H.264 is a very safe choice)-pix_fmt <format>
is an advanced option that seems to be required
The trickiest part of that command is specifying the input files. It’s also possible to specify filename wildcards like so:
ffmpeg -f image2 -pattern_type glob -i "IMG_*.jpg" ...
You can find lots of information about the command-line parameters in the documentation, but you might be better off Googling for your specific question.
Finally, we have our finished product!
The one mistake I made here, which unfortunately I can’t fix in post-production, is that part of the apartment appears in the reflection of the window, which is always a potential problem when taking photos behind glass. (About halfway through the video, you can see a vertical white bar appear in the sky.) Other than that, I’m really happy with the results of my first attempt. I love the sunset over downtown San Francisco and the transition from late afternoon through the blue hour and into the early evening. The streaks of the headlights on Mason Street came out as well as I had hoped, but the best part – which was a huge surprise to me – is seeing the streaks of the planes in the sky as they take off from or land at SFO.
If you’ve made it this far, then hopefully you found this entertaining or informative. And hopefully this will encourage me to write more non-travel posts in the future!