Creating time-lapse videos with the Nikon D7000 — Part 1 of 2

I just created my first time-lapse video from photos taken with my D7000. There are two steps in this process, of course: take the photos and create the video from them. In this post, I will talk about getting the shots. The second part deals with creating the video from the shots.

Taking photos for a time-lapse video

Here is what you need and some suggestions:

  • Subject: Choose a suitable subject: something that changes over time (but not too quickly) and looks interesting while doing so. Cars at traffic lights, an egg in a pan, clouds in the sky, …
  • Tripod: You will almost certainly need a tripod for this.
  • Camera and Settings: Of course, you need a camera that supports interval shooting. For the D7000, open the menu, select the SHOOTING MENU and select INTERVAL TIMER SHOOTING. You can then set the following options:
    1. Starting time: self-explanatory, just make sure the time is set correctly in your camera. Usually you will simply choose NOW.
    2. Interval time: the time between photo series. Setting this to 5 seconds means a series of photos will be taken every 5 seconds.
    3. Intervals and Number of shots: the intervals are the number of image series you want to shoot. the number of shots specifies how many images will be taken per series.

    Example: If you set starting time to NOW, interval time to 5 seconds, intervals to 200 and number of shots to 2, the camera will take a total of 200*2=400 photos. Every 5 seconds, 2 photos will be taken and this will thus take 5*200 = 1000 seconds, which is about 17 minutes.

  • Focus: You should focus manually before starting the series.
  • Exposure: You should set expose mode to manual (M) and take some test shots.
  • Batteries and SD card: You should make sure that you camera has enough power (check the batteries) and that there is enough space left on the memory card.
  • Quality: For videos, you usually do not need full quality. You should consider switching from RAW to JPEG, maybe even set medium instead of high jpeg quality. Just don’t forget to set this back to RAW when you’re done with the shots for the video!
  • Number of images to take: You should think about the video length you want before taking the photos. Videos usually run at around 25 FPS, i.e., you need 25 photos for 1 second of video. This means that the 200 photos used in the example settings above will give you a video that is 8 seconds long. So you may need a lot of images.

Now you should have a memory card or folder full of JPEG images. In the next post, I’ll explain what I did to create a video from them using Open Source software.

Here is my example video:

The second part of this post can be found here. It explains how to create the video from the photos you just created.


About dfspspirit

PhD student in bioinformatics, interested in photography, level design, digital image manipulation, architecture and, of course, bioinformatics.
This entry was posted in Photography and tagged , , , , , . Bookmark the permalink.

6 Responses to Creating time-lapse videos with the Nikon D7000 — Part 1 of 2

  1. Pingback: Creating time-lapse videos with the Nikon D7000 — Part 2 of 2 | spirit's spinney

  2. Hi all,
    I set up and ran through this routine to make a time lapse session. It all went well the first time. Now when I tried to do it for a second time with new images it doesn’t work. I can’t get past the first routine s01_rename.php . In there I noticed it didn’t have the location of the compiler so I added the following at the very top: #!/usr/bin/php. Still it does not want to create the output and place it in the renamed folder. In my env there is a variable called OLDPWD which it is set to
    /renamed. The same name in the script. I don’t know if that has anything to do with it but I just mentioned it here.

    Any help would be appreciated.

    Thanks in advance.


    • dfspspirit says:

      It’s hard to tell without an error message, several things could be wrong. (The env var is not used in the script, so it does not affect the script. Or did you set the output dir in the script to $OLDPWD?)
      Try the following:
      1) If there is any error message given, post it here.
      2) Ensure you have write access to the output dir. There should be an error message though if you do not have write access.
      3) If there is no error, most likely no files in the directory match the pattern, and the lower loop does not run at all. Are the image files named according to the pattern given in the script? E.g., “DSC_1234.JPG”? If no images with that name pattern are found — then nothing is copied of course. The pattern should work for Nikon images, you will have to adapt it for others. If your images are named differently, adapt the pattern or post some example names here so I can suggest a pattern (regex).

      To see how many images match the pattern, change the line:

      $digit = sprintf(“%03d”, $i);

      to the following line and re-run the script:

      $digit = sprintf(“%03d”, $i); echo “Handling image $digit.\n”;

      • Allen Faltynowicz says:

        Good Morning,

        The regexpression doesn’t match but then that is weird because it ran the first time with the original information. I am familiar with these expressions and will try what you suggested. Being new with this php from what you have told me the entire script compiles first then it is run. From what you are saying the $outdir won’t be created unless there is a jpeg found even though it is one of the first lines in the script and the reg_expression is below it.

        I sort of suspected what you had said but was just waiting for a reply.

        Again thanks for your effort in getting back to me.

        I will update you when I get home and make the adjustments.



    • dfspspirit says:

      The outdir would be created, but no files would be copied there if the regex does not match anything of course.

      PHP isn’t exactly compiled, but what’s more important: you can think of the file as being the main function, and it is evaluated from top to bottom. (The only exceptions are the functions defined in it of course — they are only run when called.)

  3. I am frequently to blogging and i genuinely appreciate your posts. This article has truly peaks my interest. I am about to bookmark your website and keep checking choosing details.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s