ffmpeg: как добавить пиксельный эффект? - PullRequest
5 голосов
/ 01 февраля 2012

Мне нужно размыть некоторые загруженные видео и закодировать их. Фактически, размытие означает, что пикселируйте их так, чтобы появились «большие квадраты», и размыли их.

Есть идеи, как я могу это сделать? (ffmpeg был бы хорош, любой инструмент командной строки Windows должен быть в порядке)

Спасибо.

Ответы [ 2 ]

8 голосов
/ 02 февраля 2012

FFmpeg может поддерживать фильтры frei0r, которые включают pixeliz0r.Пример:

ffmpeg -i input -filter:v frei0r=pixeliz0r=0.02:0.02 output

Два параметра:

  • BlockSizeX: горизонтальный размер одного «пикселя»
  • BlockSizeY: вертикальный размер одного «пикселя»

Большее значение, конечно, создаст большие блоки. Сборки Zeranoe FFmpeg включают frei0r, однако я не уверен, работает ли он, поскольку у некоторых пользователей были проблемы с ним в # ffmpeg IRC, хотя это было, по крайней мере, 6 месяцев назад.

Что касается Linux, то компиляция проста.Пользователи Ubuntu могут подписаться на HOWTO: установить и использовать последние версии FFmpeg и x264 и просто добавить frei0r-plugins-dev в качестве зависимости, а затем добавить --enable-frei0r в конфигурацию ffmpeg.

original pixeliz0r

1 голос
/ 31 марта 2019

Если вы не хотите устанавливать для этого плагин 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.

Первая строка необходима, чтобы узнать исходные размеры ввода и вернуться к нему, иначе уменьшение или уменьшение может привести к ошибкам округления, которыенемного изменить размер вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...