Friday, May 8, 2009

Lift Bridge Time-Lapse (Part 1: The Video)

The Portage Lake lift bridge at sunset -- in motion!
You can also view the video on my flickr page.

I've been experimenting with time-lapse photography lately. There are all kinds of cool things you can do, once you've figured out how! This is an example from my first try -- the Portage Lake lift bridge -- a true local monument -- over about an hour and a half, centered around sunset. I have more from this shoot, which I will feature soon.

For the technically minded, here's my process for how to make your own time-lapse photo -- you can modify this based on your equipment, but I warn you: it's not for the technologically faint of heart! The summary is short: get software that lets you control your camera from a laptop, set it up correctly, and then sit back and let your computer and camera take the photos. But the devil is in the details...
  1. Install gphoto2 on a laptop. It lets you control a camera remotely, using a normal USB cable (most camera makers have similar software which you can buy, but I prefer gphoto -- it's free and command-line controlled). There are packages for Mac OS X, Windows, and of course Linux.
  2. Write a shell script which uses gphoto to take a photo every 2-3 minutes (varies, this one was on a 2-minute timer) while slowing the shutter speed by one notch (about 1/3 stop, on my camera) for each photo. The changing shutter speed is important for sunrise or sunset photos! If you are taking a sunrise shot, you will need to change things around to make the shutter speed go faster, rather than slower. My script looked like this:
    for ((i=$1; i<=$2; i+=1))
    gphoto2 --set-config /main/capturesettings/exptime=0$i;
    gphoto2 --capture-image-and-download;
    sleep $3;
    A few technical notes: The first line sets the shutter speed, while the second takes a photo (and downloads it to your laptop, so that you can check it out right away -- no touching the camera, lest you move it and ruin the effect!). This script would be invoked (on OS X or Linux) with parameters: the first is an integer representing the starting shutter speed, the second is the ending shutter speed, and the third is the number of seconds to pause between shots. The numbers you use will depend on your camera: My Nikon D40X runs from 000 (1/4000 second) through 051 (30 seconds). For example, calling the script "",
      ./ 016 030 180
    would cause my camera to take a photo every 3 minutes (180 seconds), starting at 1/100 second shutter speed (that's 016 in my camera's code) and ending at 1/2.5 second (030), for a total of 15 frames over 45 minutes.
  3. Get to your location at least half an hour early. Set up the camera, tripod, and laptop (connected to the camera) with plans to be ready by half an hour before sunset (when the sky is just starting to really darken). Set the camera to full-manual mode, at your desired aperture and ISO settings. Focus on your desired target, and put your lens into manual focus mode (to avoid the camera trying to autofocus when it starts to get dark). Start the script.
  4. [Optional] Call up a friend you haven't talked to for a long time and spend the next hour and a half chatting as your camera and laptop do the work for you!
  5. Batch process your photos however you like (rotate, crop, etc. -- as long as you do the same thing to each photo, so that they are the same size and the images have not been shifted with respct to each other). I used GraphicConverter for this step -- a Mac-only app which has some great batch-processing features. There are many other apps you could use.
  6. Combine the images into a movie. There are many ways to do this. I used GraphicConverter -- others use iMovie, Windows Media Player, etc. This movie is at about 6 frames per second -- I would prefer more, once I polish my script.

Some details:
  • If you don't need to change your shutter speed (for example, if you're shooting during the day), you can have gphoto automatically take photos at intervals without needing a script -- just use
    gphoto2 --capture-image --interval=180 --frames=20
    which would take a photo every 180 seconds, for a total of 20 frames (60 minutes).

  • Having your camera on fully manual setting is essential, so that the script has full control over the exposure -- don't let your camera do the thinking, it will almost certainly get the later evening exposure wrong!

  • It takes some experimentation to get the timing right. This video was made with images taken every 2 minutes, with the shutter speed changing by about 1/3 stop each time. That seems about right for sunset, but if you have finer control over shutter speed, or want a different effect, your timing should be different.

Finally... have fun! Feel free to drop me a line if you want more details or clarifications.

1 comment:

Jain said...

The technology is way over my head, but the result is brilliant! I'll look forward to more.