Creating stunning time-lapse videos from a series of images is easier than you might think. This step-by-step guide will walk you through the process of using FFmpeg to transform hundreds of individual photos into a smooth time-lapse video.
What You’ll Need
- FFmpeg installed on your Windows computer
- A collection of image files (they don’t need to be sequentially named)
- Basic familiarity with the Windows command line
Installing FFmpeg on Windows
Before you can create time-lapses, you’ll need to install FFmpeg on your system.
Where to Get It: Download FFmpeg from the official website at ffmpeg.org. Click on the Windows icon and choose a build from a trusted provider like gyan.dev or BtbN. Download the “essentials” or “full” build as a .zip file.
How to Install It:
- Extract the downloaded
.zipfile to a location likeC:\ffmpeg - Navigate to the
binfolder inside (e.g.,C:\ffmpeg\bin) - Copy this path
- Open System Properties → Environment Variables
- Under “System variables,” find and select “Path,” then click “Edit”
- Click “New” and paste the path to the
binfolder - Click “OK” to save all changes
Confirm the Installation: Open a new Command Prompt window and type:
ffmpeg -version
```
If FFmpeg is installed correctly, you'll see version information and configuration details. If you get an error, restart your computer and try again, or double-check that the PATH was added correctly.
## Step 1: Organize Your Image Files
First, gather all your image files into a single directory. In this example, we're working with 518 images of a sunrise. The images don't need to have sequential file names—FFmpeg can handle non-sequential naming.
## Step 2: Generate the File List
Since the image files aren't sequentially named, you'll need to create a list file that tells FFmpeg the order in which to process them.
Open Command Prompt and navigate to your image directory, then run this command:
```
(for /f "delims=" %i in ('dir /b *.jpg /on') do @echo file '%i') > list.txt
```
This Windows batch command does several important things:
- Searches for all `.jpg` files in the directory
- Sorts them chronologically using `/on` (by name/date order)
- Formats each filename with the `file` prefix required by FFmpeg
- Outputs everything to `list.txt`
**Note:** If your images are in a different format (like `.png` or `.jpeg`), replace `*.jpg` with your file extension.
## Step 3: Verify Your File List
Open the `list.txt` file in Notepad to verify that all your files are listed properly. You should see entries formatted like this:
```
file 'IMG_001.jpg'
file 'IMG_002.jpg'
file 'IMG_003.jpg'
```
The files should be listed in the correct sequential order for your time-lapse.
## Step 4: Create the Time-Lapse Video
Now you're ready to create your time-lapse video. Use the following FFmpeg command:
```
ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -r 30 -pix_fmt yuv420p timelapse.mp4
Let’s break down what this command does:
-f concat: Tells FFmpeg to concatenate files from the list-safe 0: Allows FFmpeg to read from the file list without security restrictions-i list.txt: Specifies your input file list-c:v libx264: Uses the H.264 codec for efficient compression-r 30: Sets the output frame rate to 30 fps (use 24 for a more cinematic look)-pix_fmt yuv420p: Ensures compatibility with most video playerstimelapse.mp4: Your output filename (customize this to something descriptive likesunrise_in_quetta.mp4)
Step 5: Process and Wait
Press Enter to execute the command. FFmpeg will process all your images and create the time-lapse video. The processing time depends on the number of images and your computer’s performance, but it typically completes in about a minute for several hundred images.
You’ll see FFmpeg’s progress output in the command line, showing frame numbers and encoding speed.
Step 6: Review Your Time-Lapse
Once processing is complete, you’ll find your new video file in the same directory. Open it to review your creation—what took hours to capture is now condensed into a smooth, watchable time-lapse of just a few seconds or minutes!
Tips for Success
- Frame Rate Options: Use
-r 24for a cinematic feel or-r 30for standard video. Higher frame rates create smoother motion. - File Organization: Keep all images in one dedicated folder for easier processing
- File Formats: The commands above use
.jpgfiles, but you can easily adapt them for.png,.jpeg, or other image formats - Custom Output Names: Replace
timelapse.mp4with a descriptive name likesunrise_timelapse.mp4orproject_name.mp4 - Batch Files: If you’re running these commands in a
.batscript file, use%%iinstead of%iin the for loop
That’s it! With these simple steps, you can transform any series of photos into professional-looking time-lapse videos. The commands are straightforward and can be reused for future projects—just adjust the filenames, frame rates, and output names as needed. Keep these commands handy for your next time-lapse project!