Sinulla on 500 PNG-kuvankaappausta muutettavaksi WebP-muotoon verkkosivustollesi. FFmpeg tunnetaan parhaiten videotyökaluna, mutta se käsittelee kuvia yhtä hyvin.
Miksi käyttää FFmpegiä kuviin?
FFmpeg on todennäköisesti jo asennettu jos teet videotyötä. RAW-kameraformaateille (CR2, NEF, ARW) käytä darktablea tai RawTherapeeta.
Asenna FFmpeg
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionPerusrakenne
Jokainen joukkokäsittelykomento noudattaa samaa rakennetta: shell-silmukka (Linux/macOS) tai for-silmukka (Windows). Kirjoita aina erilliseen tuloskansioon.
Muunna kaikki PNG JPG-muotoon
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 | Laatu | Tyypillinen käyttö |
|---|---|---|
| 1-2 | Lähes häviötön | Tulostus, arkistointi |
| 3-5 | Korkea laatu | Webvalokuvaus |
| 6-10 | Keskitaso | Esikatselut |
| 11+ | Alhainen laatu | Vältä |
Muunna kaikki JPG WebP-muotoon
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 tuottaa tyypillisesti 25–35 % pienemmät tiedostot kuin vastaava JPG. Valokuville 80–85 on optimaalinen alue.
Muunna PNG-muotoon
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneMuunna sekalaisia formaatteja
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"
doneMuuta kokoa ja muunna yhdellä kertaa
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"
doneRekursiivinen alikansioiden käsittely
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"
doneRinnakkainen käsittely nopeuden parantamiseksi
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}8-ytimisellä koneella SSD-tallennuksella rinnakkainen käsittely nopeuttaa tyypillisesti 3–5 kertaa.
Edistymisen seuranta
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"
doneVirheenkäsittely
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
doneKomentoviite
| Muunnos | Komento (Linux/macOS) | Huomio |
|---|---|---|
| Kaikki PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Kaikki JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Kaikki JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Kaikki → WebP häviötön | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Koon muutos + muunnos | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
Milloin FFmpeg ei ole oikea työkalu
RAW-kameraformaatit — rajoitettu tuki. Käytä darktablea tai RawTherapeeta.
AVIF-koodaus — mahdollinen mutta erittäin hidas ilman laitteistokiihdytystä.
Vain muutama tiedosto? FastConvert on nopeampi — ilman asennusta.
Usein kysytyt kysymykset
Yhteenveto
FFmpegin joukkomuuntaminen perustuu yksinkertaiseen shell-silmukkaan. Testaa aina pienellä erällä ennen koko kirjaston käsittelyä.
Muunna kuvia ilman komentoriviä? FastConvert — ilmaiseksi, ilman rekisteröitymistä.
