← Блог

Как конвертировать изображения в JPG, PNG, WebP, GIF с помощью FFmpeg (Руководство 2026)

Полное руководство по конвертации изображений между форматами JPG, PNG, WebP и GIF с использованием FFmpeg. Включает пакетное преобразование, управление качеством и бесплатную альтернативу в один клик.

4 min read

FFmpeg — это не только инструмент для работы с видео, но и мощное средство конвертации форматов изображений. Нужно ли вам преобразовать скриншоты PNG в JPG, оптимизировать изображения в формат WebP для веба или создать GIF из последовательности кадров — FFmpeg справится со всем этим из командной строки.

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


Предварительные требования: установка FFmpeg

FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows: Скачайте с ffmpeg.org, распакуйте и добавьте папку bin в переменную PATH.


Базовые преобразования изображений

PNG в JPG

ffmpeg -i input.png -q:v 2 output.jpg
  • -q:v 2 — качество JPEG (1 = лучшее, 31 = худшее). Рекомендуется значение 2–5.

JPG в PNG

ffmpeg -i input.jpg output.png

PNG — формат без потерь, поэтому параметр качества не нужен.

PNG/JPG в WebP

ffmpeg -i input.png -quality 80 output.webp
  • -quality 80 — качество WebP (0–100). Значение 75–85 — хороший баланс.

WebP в PNG

ffmpeg -i input.webp output.png

WebP в JPG

ffmpeg -i input.webp -q:v 2 output.jpg

BMP в PNG

ffmpeg -i input.bmp output.png

TIFF в JPG

ffmpeg -i input.tiff -q:v 2 output.jpg

Работа с GIF

Последовательность изображений в GIF

Преобразование серии изображений (frame001.png, frame002.png, …) в анимированный GIF:

ffmpeg -framerate 10 -i frame%03d.png -vf "scale=480:-1:flags=lanczos" output.gif
  • -framerate 10 — 10 кадров в секунду
  • frame%03d.png — шаблон, соответствующий frame001.png, frame002.png и т.д.
  • scale=480:-1 — ширина 480 пикселей, высота рассчитывается автоматически
  • flags=lanczos — высококачественный алгоритм масштабирования

Видео в GIF

ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos" -loop 0 output.gif

GIF в последовательность изображений

Извлечение каждого кадра из GIF:

ffmpeg -i input.gif frame%03d.png

GIF в MP4

GIF-файлы очень большие — конвертация в MP4 уменьшает размер на 90% и более:

ffmpeg -i input.gif -movflags +faststart -pix_fmt yuv420p output.mp4

Расширенные параметры

Управление качеством JPEG

ffmpeg -i input.png -q:v 5 output.jpg
-q:vКачествоРазмер файла
1ЛучшееНаибольший
2–3Очень хорошееБольшой
5ХорошееСредний
10ПриемлемоеМаленький
31ХудшееНаименьший

Управление качеством WebP

# WebP с потерями
ffmpeg -i input.png -quality 85 output.webp

# WebP без потерь
ffmpeg -i input.png -lossless 1 output.webp

Изменение размера изображений

Масштабирование до заданной ширины (с сохранением соотношения сторон):

ffmpeg -i input.png -vf "scale=800:-1" output.png

Масштабирование до заданных размеров:

ffmpeg -i input.png -vf "scale=800:600" output.jpg

Изменение цветового пространства

Преобразование в оттенки серого:

ffmpeg -i input.png -vf "format=gray" output.png

Пакетное преобразование

Преобразование всех PNG в JPG

Linux/macOS:

for f in *.png; do
  ffmpeg -i "$f" -q:v 2 "${f%.png}.jpg"
done

Преобразование всех JPG в WebP

for f in *.jpg; do
  ffmpeg -i "$f" -quality 80 "${f%.jpg}.webp"
done

Windows (PowerShell):

Get-ChildItem *.png | ForEach-Object {
  ffmpeg -i $_.Name -q:v 2 ($_.BaseName + ".jpg")
}

Распространённые ошибки и способы их устранения

«Выходной файл пустой или полностью чёрный» Для некоторых форматов требуется явно указать формат пикселей:

ffmpeg -i input.png -pix_fmt rgb24 output.jpg

«GIF с ужасными цветами» GIF ограничен 256 цветами. Используйте палитру для улучшения качества:

ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,palettegen" palette.png
ffmpeg -i input.mp4 -i palette.png -lavfi "fps=10,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

«Не удаётся определить формат» Укажите формат явно:

ffmpeg -f image2 -i input.bmp output.png

Забудьте о терминале: используйте WaveSpeed Desktop

Преобразовать одно изображение с помощью FFmpeg ещё терпимо. Но конвертировать целую пачку изображений с контролем качества, формата и размера? Это быстро становится утомительным.

WaveSpeed Desktop включает встроенный конвертер изображений, который делает это без усилий:

  • Перетащите одно или несколько изображений
  • Выберите выходной формат (JPG, PNG, WebP, GIF)
  • Нажмите «Конвертировать» — готово

Никакого FFmpeg. Никакого терминала. Никаких флагов качества, которые нужно помнить.

WaveSpeed Desktop Image Converter

Скачайте WaveSpeed Desktop бесплатно: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


Часто задаваемые вопросы

Какой формат изображений лучше всего подходит для веба? WebP обеспечивает наилучшее соотношение сжатия и качества. Используйте его, если поддержка браузерами не вызывает сомнений. В остальных случаях — JPEG для фотографий и PNG для графики с прозрачностью.

Улучшается ли качество при конвертации JPG в PNG? Нет. Как и в случае с аудио, информацию, утраченную при сжатии JPEG, восстановить нельзя. Файл PNG просто окажется большего размера.

Насколько WebP меньше JPEG? Обычно на 25–35% при эквивалентном визуальном качестве.

Может ли FFmpeg работать с RAW-файлами камеры? FFmpeg имеет ограниченную поддержку RAW. Для конвертации RAW лучше подойдут специализированные инструменты, такие как ImageMagick или darktable.

Поделиться