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:

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.mkv

Method 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.mkv

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: