Máte 500 PNG screenshotů k převodu na WebP pro svůj web. FFmpeg je znám jako video nástroj, ale zpracovává obrázky stejně dobře — a protože funguje z příkazové řádky, zpracuje libovolné množství souborů jedním příkazem.
Proč používat FFmpeg pro obrázky?
FFmpeg je pravděpodobně již nainstalován, pokud děláte video práci. Podporuje širokou škálu formátů. Pro RAW formáty (CR2, NEF, ARW) použijte darktable nebo RawTherapee.
Install FFmpeg
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionZákladní vzor
Každý příkaz hromadné konverze sleduje stejnou strukturu: smyčka shellu (Linux/macOS) nebo smyčka for (Windows). Klíčové pravidlo: nikdy nepřepisujte zdrojové soubory.
Hromadná konverze PNG na JPG
mkdir -p output
for f in *.png; do
ffmpeg -i "$f" -q:v 2 "output/${f%.png}.jpg"
donemkdir output
for %f in (*.png) do ffmpeg -i "%f" -q:v 2 "output/%~nf.jpg"New-Item -ItemType Directory -Force output
Get-ChildItem *.png | ForEach-Object {
ffmpeg -i $_.FullName -q:v 2 "output/$($_.BaseName).jpg"
}| -q:v | Kvalita | Typické použití |
|---|---|---|
| 1–2 | Téměř bezztrátová | Tisk, archiv |
| 3–5 | Vysoká kvalita | Webová fotografie |
| 6–10 | Střední kvalita | Náhledy |
| 11+ | Nízká kvalita | Vyhnout se |
Hromadná konverze JPG na WebP
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" -quality 85 "output/${f%.*}.webp"
donemkdir -p output
for f in *.png; do
ffmpeg -i "$f" -lossless 1 "output/${f%.png}.webp"
doneWebP vytváří soubory typicky o 25–35 % menší než ekvivalentní JPG. Pro fotografie je optimální rozsah 80–85.
Konverze na PNG
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneKonverze smíšených formátů
mkdir -p output
for f in *.jpg *.jpeg *.png *.webp *.tiff *.bmp; do
[ -f "$f" ] || continue
ffmpeg -i "$f" -q:v 3 "output/${f%.*}.jpg"
doneZměna velikosti při konverzi
mkdir -p output
for f in *.png; do
ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 "output/${f%.png}.jpg"
donemkdir -p output
for f in *.jpg; do
ffmpeg -i "$f" -vf "crop='min(iw,ih)':'min(iw,ih)',scale=200:200" \
"output/${f%.jpg}_thumb.jpg"
doneRekurzivní zpracování podadresářů
find . -name "*.png" -not -path "./output*" | while read f; do
output="output/${f#./}"
mkdir -p "$(dirname "$output")"
ffmpeg -i "$f" -q:v 3 "${output%.png}.jpg"
doneParalelní zpracování pro rychlost
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}Na 8jádrovém stroji se SSD paralelní zpracování typicky zkrátí čas konverze 3–5×.
Ukazatel průběhu
total=$(ls *.png | wc -l)
count=0
mkdir -p output
for f in *.png; do
count=$((count + 1))
echo "[$count/$total] $f"
ffmpeg -loglevel quiet -i "$f" -q:v 3 "output/${f%.png}.jpg"
doneOšetření chyb
mkdir -p output
error_log="errors.txt"
> "$error_log"
for f in *.jpg *.jpeg *.png *.webp; do
[ -f "$f" ] || continue
if ffmpeg -loglevel error -i "$f" -quality 85 "output/${f%.*}.webp" 2>>"$error_log"; then
echo "✓ $f"
else
echo "✗ $f"
fi
doneReference příkazů
| Konverze | Příkaz (Linux/macOS) | Poznámka |
|---|---|---|
| Všechny PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Všechny JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Všechny JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Vše → WebP bezztrátově | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Změna velikosti + konverze | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
Kdy FFmpeg není správný nástroj
RAW formáty (CR2, NEF, ARW) — omezená podpora. Použijte darktable nebo RawTherapee.
Kódování AVIF — možné, ale velmi pomalé. libavif nebo Squoosh CLI jsou rychlejší.
Jen pár souborů? Online nástroj jako FastConvert je rychlejší.
Nejčastější dotazy
Shrnutí
Hromadná konverze obrázků přes FFmpeg se skládá z jednoduché smyčky. Vždy testujte na malé dávce před zpracováním celé knihovny.
Konvertovat obrázky bez příkazové řádky? FastConvert — zdarma, bez registrace.
