Как «сохранить для сети» изображение в формате JPG - PullRequest
0 голосов
/ 25 июня 2019

У меня есть высококачественные изображения 8mp + и мне нужно максимально уменьшить их размер, не теряя при этом слишком высокого качества. Photoshop и аналогичные функции имеют отличные функции «Сохранить для Интернета».

Как мне это сделать с помощью ffmpeg? Изображения JPG

На самом деле мне нужно обрезать изображения из центра.

так

оригинальное изображение: 1200x800, качество: отличное -> обрезанные изображения: 300x300 от центра исходного изображения, качество: отличное ----> сохранить для веб-обрезанных изображений, качество: сохранить для веб

Какие команды ffmpeg мне нужно запустить?

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

JPEG качество

-q:v

См. Параметр -q:v в Как извлечь изображение JPEG хорошего качества из видеофайла H264 с помощью ffmpeg?

Оптимизация

Убедитесь, что вы используете последнюю версию ffmpeg, которая по умолчанию включит оптимизацию Хаффмана. Это может привести к небольшому уменьшению размера файла. См. ffmpeg -h encoder=mjpeg и найдите параметр -huffman, чтобы увидеть, поддерживает ли ваша версия это.

В качестве альтернативы оптимизация Хаффмана может быть выполнена с помощью jpegtran:

jpegtran -optimize -copy none -perfect input.jpg > output.jpg

Пиксельный формат

Я предполагаю, что Photoshop "Save for Web" выводит только пиксельный формат yuvj420p, тогда как ffmpeg выберет пиксельный формат (yuvj420p, yuvj422p или yuvj444p), который наиболее близко соответствует формату входного пикселя. Вы можете форсировать yuvj420p с помощью фильтра формата . Это приведет к уменьшению размера файла, но может также усилить артефакты в определенных областях, но вы можете не заметить разницы.

фильтр на полях

Используйте фильтр кадрирования . По умолчанию центрирование обрезается, поэтому просто используйте -vf crop=300:300.

Пример команды

ffmpeg -i input -vf "crop=300:300,format=yuvj420p" -q:v 3 -frames:v 1 output.jpg
0 голосов
/ 25 июня 2019

Необходимо указать параметр качества с флагом -q:v, который принимает числовой аргумент от 1 (лучший, самый большой) до 31 (худший, самый маленький).

ffmpeg -i <input> -q:v 8 <output.jpg>

Вам решать, какие настройки качества "достаточно хороши" и "достаточно малы".

По вопросу добавления см. http://ffmpeg.org/ffmpeg-filters.html#crop

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