Du har 500 PNG-skärmdumpar som behöver konverteras till WebP för din webbplats. FFmpeg är bäst känt som ett videoverktyg, men hanterar bilder lika bra — och eftersom det körs från kommandoraden, behandlar det valfritt antal filer med ett enda kommando.
Varför FFmpeg för bilder?
FFmpeg är troligtvis redan installerat om du arbetar med video. Det stöder ett brett utbud av format och integreras naturligt i shellskript och CI-pipelines. För RAW-kameraformat (CR2, NEF, ARW), använd darktable eller RawTherapee — FFmpegs RAW-stöd är begränsat.
Installera FFmpeg
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionDet grundläggande mönstret
Varje bulk-konverteringskommando följer samma struktur: en shell-loop (Linux/macOS) eller en for-loop (Windows). Grundregel: skriv aldrig över källfiler — skriv alltid till en separat utdatakatalog.
Masskonvertera PNG till 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 | Kvalitet | Typisk användning |
|---|---|---|
| 1-2 | Nästan förlustfri | Utskrift, arkivering |
| 3-5 | Hög kvalitet | Webbfotografi |
| 6-10 | Medel | Förhandsvisningar |
| 11+ | Låg kvalitet | Undvik |
Masskonvertera JPG till 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 ger typiskt 25–35 % mindre filer än motsvarande JPG. För foton är 80–85 det optimala intervallet. För logotyper och grafik med text, använd lossless WebP.
Konvertera till PNG
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneKonvertera blandade format
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"
doneÄndra storlek och konvertera i ett steg
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"
doneRekursiv behandling av undermappar
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"
doneParallell bearbetning för snabbhet
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}På en 8-kärnig maskin med SSD-lagring minskar parallell bearbetning typiskt konverteringstiden med 3–5 gånger.
Förloppsindikator
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"
doneFelhantering
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
doneKommandoreferens
| Konvertering | Kommando (Linux/macOS) | Kommentar |
|---|---|---|
| Alla PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Alla JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Alla JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Alla → WebP förlustfri | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Ändra storlek + konvertera | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
När FFmpeg inte är rätt verktyg
RAW-kameraformat (CR2, NEF, ARW) — begränsat stöd. Använd darktable eller RawTherapee.
AVIF-kodning — möjlig via -c:v libaom-av1 men mycket långsam utan hårdvaruacceleration.
Bara några filer? FastConvert är snabbare — utan installation.
Vanliga frågor
Sammanfattning
FFmpeg-bulk-bildkonvertering handlar om en enkel shell-loop. Testa alltid på en liten batch innan du bearbetar hela ditt bibliotek.
Konvertera bilder utan kommandoraden? FastConvert — gratis, ingen registrering.
