Если вы не хотите устанавливать для этого плагин frei0r, есть альтернативный способ.
dimensions=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of "csv=p=0:s=\:" input)
ffmpeg -i input -filter_complex \
"[0:v] scale='iw/15:-1', scale='$dimensions:flags=neighbor'" output
Это уменьшает размер входного файла (в данном примере на 15), а затем уменьшает егодо оригинальных размеров.flags=neighbor
указывает ffmpeg использовать алгоритм масштабирования ближайшего соседа, что приводит к пикселизированному эффекту.Вы можете изменить размер блока, изменив число 15.
Первая строка необходима, чтобы узнать исходные размеры ввода и вернуться к нему, иначе уменьшение или уменьшение может привести к ошибкам округления, которыенемного изменить размер вывода.