Clouds moving across a window. A plant turning toward the light. A workbench going from a pile of parts to a finished project. Time-lapse makes slow changes visible, and a Raspberry Pi is a pleasingly small way to capture them.
This guide produces a short JPEG sequence and turns it into a video. Start indoors with a stable subject before attempting an all-day outdoor capture.
Set up a stable camera
Use a Pi 4 or 5 with a compatible camera and the correct ribbon cable for both connectors. Shut down and disconnect power before fitting the cable. Mount the camera so it cannot move during the sequence, then boot a current Raspberry Pi OS installation with the rpicam tools available.
Check detection and make one still image before planning the time-lapse:
rpicam-hello --list-cameras
rpicam-still --nopreview --timeout 2000 --output test.jpg
Open test.jpg on your computer or transfer it through your normal file workflow. Inspect the corners as well as the subject. A cable in the frame or a reflection is much easier to fix now than after an hour of recording.
Decide how much time to compress
The useful calculation is simple: video duration = number of captured frames ÷ playback frame rate. A ten-minute capture with one frame every five seconds yields roughly 120 frames. At 24 frames per second, that becomes about five seconds of video.
Choose the interval for the subject. A busy workbench may need a shorter interval; a plant can tolerate a much longer one. Take a few sample images and estimate disk usage before committing to a long session.
Capture a short sequence
Use a fresh directory so old frames do not accidentally become part of the movie. This example captures for approximately ten minutes, asking for one image every five seconds. Both timing arguments are in milliseconds.
mkdir -p "$HOME/timelapse-session-01"
cd "$HOME/timelapse-session-01"
rpicam-still --nopreview --timeout 600000 --timelapse 5000 \
--width 1920 --height 1080 --output frame%05d.jpg
The actual frame count can vary with capture timing. Inspect the first few frames and the final frame before encoding. If the camera is being used by another process, stop that process deliberately rather than repeatedly launching competing captures.
Turn the frames into a movie
Install FFmpeg and run it from the same directory as the images. The numbered pattern keeps frames in capture order. The output is a broadly compatible H.264 video; the encoding can take time on a Pi.
sudo apt update
sudo apt install ffmpeg
ffmpeg -framerate 24 -pattern_type glob -i 'frame*.jpg' \
-c:v libx264 -pix_fmt yuv420p -movflags +faststart timelapse.mp4
FFmpeg will ask before overwriting an existing output file. Preserve the original JPEGs until you have checked the video, since they let you change the playback speed or crop without capturing everything again.
Solve flicker and movement at the source
If brightness pulses between frames, the camera may be adapting exposure or white balance as the scene changes. Experiment with fixed settings supported by your camera and the current rpicam documentation. Take a short comparison sequence before locking settings for a full day.
If the subject gradually leaves the frame, improve the mount. Software stabilization can help in some cases, but it also crops the picture and cannot recover something the camera never captured. Avoid windows that reflect changing indoor lights.
Finish one sequence before automating
Check available storage with df -h . and keep a margin for temporary files. Copy a finished session to another device before deleting anything from the Pi. For outdoor use, account for rain, condensation, and heat with an appropriate enclosure.
Once the short test works, extend the duration or schedule a repeat capture. A private file server makes a useful home for finished videos, while leaving the camera focused on capture.
Sources and further reading
Researched from the official documentation linked above on September 10, 2026. Setup examples are starting points and have not been hardware-tested by Open Pi. Check your board, OS, and the project’s current instructions before installing.