Making Time-lapse Videos
This page describes the setups and techniques I am using to capture and create time-lapse videos.
The basic idea is very simple: Capture each frame of the video as individual frame of the video as an image and assemble the images into a video. Thus there are are two necessary parts in this process:
- A camera that can be controlled to capture images at regular interval. The delay between the frames depends on the length-ratio between the real-time event and the playback. For example, you want to create a time-lapse video with 25 fps of an event that lasts for 15 hours and you want the playback length to be 3 minutes. For a 3 minute video you'll need 4500 frames and over 15 hours this corresponds to capturing one frame every 12 seconds.
- Video encoder software that can take the recorded frames and encode them into a video. A good video encoder will also allow post processing, e.g. scaling and cropping.
An alternative technique can be used where one uses a regular video camera to record a standard video and converts the captured video using fast-playback. This technique is only feasible for short events up to an hours or so.
When using a webcam with Gstreamer we can record a video at 1 fps. To time-lapse it we can simply treat it as if it was a 25fps recording:
ffmpeg -r 25 input.ogg -sameq -r 25 output.ogg
Logitech QuickCam Pro 9000
The Logitech QuickCam Pro 9000 is UVC compatible and therefore works extremely well with recent Linux kernels.
The control software to use is the Gtk+ UVC Viewer.
Post-processing using FFmpeg
Processing is done in Linux using FFmpeg.
To convert the images called Image-1.jpg, Image-2.jpg, ... to a video in .mov format:
ffmpeg -i Image-%d.jpg -sameq -r 25 timelapse.mov (FIXME: Use -b instead)
To convert images captured in 4:3 at 1600x1200 to 16:9 format by cropping the top and bottom:
<ref> tags exist, but no
<references/> tag was found