Configure FFmpeg Tile Filter Grid Margin and Padding

This article provides a quick guide on how to use the FFmpeg tile video filter to combine multiple video frames into a single grid. You will learn how to define the grid layout (columns and rows), set the outer margin around the grid, adjust the internal padding between individual tiles, and customize the background color.

The FFmpeg tile filter uses a specific syntax to control the layout, margins, and padding of the generated grid. The most straightforward way to configure these settings is by using named parameters in the filter string:

tile=layout=ColsxRows:margin=Pixels:padding=Pixels:color=ColorName

Key Parameters Explained

Example Configurations

1. Basic Grid with Margin and Padding

To create a 4x3 grid with a 10-pixel outer margin, 5-pixel inner padding, and a black background, use the following command:

ffmpeg -i input.mp4 -vf "tile=layout=4x3:margin=10:padding=5:color=black" output.png

2. Position-Based Syntax

You can also specify the parameters without named keys by keeping them in the exact order: tile=layout:margin:padding. The command below produces a 3x3 grid with a 20-pixel margin and a 10-pixel padding:

ffmpeg -i input.mp4 -vf "tile=3x3:20:10" output.png

3. Creating a Video Contact Sheet

If you want to generate a single image showing a grid of frames sampled at regular intervals, combine the select filter with the tile filter. This command samples one frame every 10 seconds and arranges them into a 5x5 grid with a 15-pixel margin and 8-pixel padding:

ffmpeg -i input.mp4 -vf "select='not(mod(n,300))',scale=320:-1,tile=layout=5x5:margin=15:padding=8:color=gray" -vframes 1 output.png