Configure SVT-AV1 Tile Columns and Rows in FFmpeg
This guide explains how to configure tile columns and tile rows in
the SVT-AV1 (libsvtav1) encoder using FFmpeg. By adjusting
these parameters, you can split video frames into a grid of independent
regions (tiles), enabling parallel processing to significantly speed up
both video encoding and decoding.
Understanding AV1 Tiles and Log2 Scaling
In the AV1 codec, frames can be divided into a grid of tiles that can be encoded and decoded independently. This allows modern multi-core processors to process different parts of the frame simultaneously.
SVT-AV1 configures tile columns and rows using \(\log_2\) (logarithm base 2) values. This means the number you input determines the exponent, not the raw count of tiles:
- 0 = \(2^0\) = 1 tile
- 1 = \(2^1\) = 2 tiles
- 2 = \(2^2\) = 4 tiles
- 3 = \(2^3\) = 8 tiles
- 4 = \(2^4\) = 16 tiles
For example, setting tile columns to 2 and tile rows to
1 will create a grid of 4 columns and 2 rows, resulting in
8 total tiles.
FFmpeg Command Syntax
You can configure these settings in FFmpeg using two different
methods: direct encoder flags or the unified -svtav1-params
option.
Method 1: Using Direct FFmpeg Flags
Modern versions of FFmpeg allow you to pass tile arguments directly
using the -tile_columns and -tile_rows
flags:
ffmpeg -i input.mp4 -c:v libsvtav1 -preset 4 -crf 26 -tile_columns 2 -tile_rows 1 output.mkvMethod 2: Using the
-svtav1-params Option
Alternatively, you can pass these parameters directly to the underlying SVT-AV1 library using a colon-separated key-value list. This method is highly reliable across different FFmpeg builds:
ffmpeg -i input.mp4 -c:v libsvtav1 -preset 4 -crf 26 -svtav1-params tile-columns=2:tile-rows=1 output.mkvRecommended Configurations by Resolution
While increasing the tile count improves encoding and decoding speeds on multi-core CPUs, too many tiles can slightly reduce compression efficiency (resulting in a larger file size or lower quality at the same bitrate).
Here are the industry-standard recommended configurations for common resolutions:
- 1080p (Full HD): Use a 2x1 grid (2 columns, 1 row)
to utilize up to 2 parallel threads.
-tile_columns 1 -tile_rows 0(2 total tiles)
- 1440p (QHD): Use a 2x2 grid (2 columns, 2 rows) to
utilize up to 4 parallel threads.
-tile_columns 1 -tile_rows 1(4 total tiles)
- 2160p (4K UHD): Use a 4x2 grid (4 columns, 2 rows)
to utilize up to 8 parallel threads.
-tile_columns 2 -tile_rows 1(8 total tiles)