Creating an airplane hyperlapse with a GoPro

In the age of jet flight, it’s easy to forget how amazing the airplanes are that take us across the country in mere hours (take that, Oregon trail of two hundred years ago!) We’re able to cover thousands of miles in an afternoon. And if you look out the window, you’ll see some mountains or some fields and some cities. I don’t know anyone who has stared out the window for an entire flight. So that’s why I set up my GoPro to do just that.

Find and Rent a local GoPro »

Set up and capture

The plan was to attach my GoPro to the window of my flight and take a picture every 10 seconds while we’re in the air. Because GoPros have notoriously short battery life, I had it hooked up to an external USB battery supply for the entire duration. To attach it to the window, I used a trusty roll of masking tape:

GoPro taped to airplane window

GoPro taped to airplane window

After posting this picture to Facebook, I was quickly informed that GoPro makes a suction cup mount for just-such-an-occasion, and makes you look like at least 80% less of a terrorist:

GoPro suction cup mount

GoPro suction cup mount

You can snag one of these on Amazon Prime for about $25.

The only issue I ran into on the flight was during take-off. I had set up my GoPro before taxi-ing to the runway, and a flight attendant told me that for safety purposes it couldn’t be taped to the window during take-off.


There are a variety of utilities that will merge thousands of individual shots into one video file. They differ by platform and supported codecs. On Linux and OS X, I recommend using

ffmpeg. A GoPro will shoot in super-high quality (1080p), but unless you need high quality video, you can downsample to save some space. In this example, I’m reducing height and width by 50%. After dumping all of your photos into a folder, you can run a command like this:

ffmpeg -r 20 -pattern_type glob -i 'sm_G*.JPG' -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 gopro-20.mp4

This tells ffmpeg to combine the photos at 20 frames per second (`-r 20`), the input files match the wildcard `sm_G*.JPG`. The `-vf “scale=…”` is a command just to the video processor to reduce the input size. `-c:v libx264` tells ffmpeg to encode the output using the libx264 codec, which is very common and web-friendly.

Final hyperlapse video from Columbus to Denver

Columbus to Denver GoPro timelapse from derwiki on Vimeo.

Rent a GoPro on CameraLends

Leave a Reply