Saturday, October 3, 2026

A Better Way to do Timelapses and Hyperlapses

For the uninitiated, a "hyperlapse" is a timelapse where the camera moves. I will just use the term timelapse since from a photography and videography perspective, they have the same challenges.

The usual way to create a timelapse is to take still photographs at a particular interval and then put these frames into a video format which will compress the time. For example, if a photo is taken every five seconds and then those frames are put into a video at 30 frames per second, 5 * 30 or 150 seconds, which is two and a half minutes, will be shown in one second. An hour of real time will be shown in 24 seconds of video time.

The problem with this is what videographers call the "shutter angle". Photographers talk about the "shutter time" such as 1/60th of a second. This is used to freeze or not freeze motion as well as one of the three variables a photographer has to play with to get the desired exposure. The other two being aperture and ISO.

Videographers talk about "shutter angle" however which relates to the percentage of time the shutter is open compared to the time that a single frame of the video is displayed. The reason "angle" is used rather than percentage has to do with how original film based equipment worked which I won't get into here. The other bit of history that is important is original films shown in theaters were shot at 24 frames per second and the shutter angle was always set to 180º out of a theoritical maxium of 360º. This implies that the shutter was open for half of the time. The other half of the time was consumed by moving the film to the next frame. These particular settings are often accused of being "cinematic" which has a lot of "love" by videographers. From what I gather, some of this is valid and some of it isn't. For me personally, I generally can not perceive nor appreciate the subtleties that the videographers talk about except in a few extreme cases. Part of what follows is experimental in the sense that I wanted to see if I could perceive any differences and part of it is to solve some general problems I have with timelapses.

Disclaimer: I don't consider myself a videographer and I actually don't even consider myself a photpgraher.

So lets finally get to the point of this post... When single frames that are usually exposed at a normal shutter speed of 1/60th or 1/2000th of a second (aka 1/60s) are bundled together into a video what today generally runs at 30 or 60 frames per second (fps) the effective shutter angle becomes absurdly small. In our original example where an image is captured every 5 seconds, the shutter is effectively 1.2º (360º * 1/60s / 5s). The result of this (which I can actually see myself) is a very jittery video. If you watch carefully at high speed football replies you will see the same effect. It is subtle but it does actually affect the emotional perceptions the viewer has.

One way to solve this is to use a very long exposure when the still images are taken. This generally requires the use of filters and it gets a little bit complicated but it is doable without too much effort but it is an extra obstacle that needs to be considered.

The real problem is the characteristics of the resulting timelapse are set in stone at the time the timelapse is taken. The amount of real time the timelapse will cover and the length in time of the resulting video needs to be determined ahead of time. Both of these are nearly impossible to determine ahead of time. A sunrise timelapse might start 30 minutes before the official time of sunrise but the clouds may be extremely interesting for another 15 minutes after -- or maybe not. And then the mood of the video might be best at a minute of run time or perhaps three minutes or maybe 15 minutes. The way the events unfold determines if the timelapse can hold a person's attention for longer or shorter times and this can't really be determined ahead of time.

The way to solve these problems is to not shoot still images originally but shoot a video instead. In the following example, I shot the video at 60 frames per second (60 fps) with a shutter of 1/60 or 360º. Modern digital cameras can achieve this. The footage was taken from a DJI Mavic 4 Pro drone. To be precise, the video is not at 60 fps but is actually at the NTSC's 59.94 fps according to ffmpeg (which I will subsequently describe).

ffmpeg is an open source tool that can process videos in countless different ways. It is actually a suite of tools but I'll just use ffmpeg to reference them unless I am providing a specific command with its arguments.

With ffmpeg, a sequence of frames can be merged and frames can be skipped. For example, if the original footage is shot at 60 fps for 30 minutes and the desire is for the timelapse to be just two and a half minutes long, that implies that 12 frames of the original footage is packed into one frame of the resulting timelapse. How to do this?

Here, most any shutter angle can be achieved. One frame can be put into the final video and then 11 frames skipped resulting in an effective shutter angle of 30º. Or 12 frames can be merged and no frames skipped resulting in an effective shutter angle of 360º. Or 6 frames can be merged with 6 frames being skipped resulting in a 180º shutter angle. Note as well that the "divide by 12" can be changed so the length of the resulting timelapse can be very short of just a few seconds or up to 15 minutes. The divisor must be an integer (2, 3, 4, ... 10, 11, ...) but that is the only constraint.

With the help of Claude, I wrote tl.sh which can produce a timelapse from a video allowing the user to specify the resulting length of the output video and the effective shutter angle. Currently the output frame rate matches the input's frame rate but I plan to make that change soon. I have used the script on a 35 minute piece of DJI footage that I reduced down to 2 minutes and 50 seconds or a 12 to 1 reduction in time. The original footage as well as timelapse videos at 0º (really 30º), 90º, 180º, and 360º have been produced as a sample and put into the Storm Clouds Timelaps Playlist on YouTube. Also, I pulled out and exploded the first frame of the timelapses showing a passing car and the effects of the merging of 1, 3, 6, and 12 frames.

I may come back and edit this a bit more but for now, I think this is fairly complete.