Web siteniz için WebP'ye dönüştürmeniz gereken 500 PNG ekran görüntünüz var. FFmpeg esas olarak bir video aracı olarak bilinir, ancak görselleri de aynı derecede iyi işler.
Görsel işleme için neden FFmpeg?
Video çalışması yapıyorsanız FFmpeg muhtemelen zaten kurulu. RAW kamera formatları (CR2, NEF, ARW) için darktable veya RawTherapee kullanın.
FFmpeg Kurulumu
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionTemel yapı
Her toplu dönüştürme komutu aynı yapıyı izler: bir kabuk döngüsü (Linux/macOS) veya bir for döngüsü (Windows). Her zaman ayrı bir çıktı dizinine yazın.
Tüm PNG'leri Toplu JPG'ye Dönüştür
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 | Kalite | Tipik kullanım |
|---|---|---|
| 1-2 | Neredeyse kayıpsız | Baskı, arşivleme |
| 3-5 | Yüksek kalite | Web fotoğrafçılığı |
| 6-10 | Orta kalite | Önizlemeler |
| 11+ | Düşük kalite | Kaçının |
Tüm JPG'leri Toplu WebP'ye Dönüştür
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, eşdeğer JPG'den tipik olarak %25–35 daha küçük dosyalar üretir. Fotoğraflar için 80–85 optimum aralıktır.
PNG'ye Dönüştür
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneKarışık Formatları Dönüştür
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"
doneTek Geçişte Yeniden Boyutlandır ve Dönüştür
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"
doneAlt Dizinlerin Özyinelemeli İşlenmesi
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"
doneHız için Paralel İşleme
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}8 çekirdekli bir makinede SSD depolama ile paralel işleme tipik olarak dönüştürme süresini 3–5 kat azaltır.
İlerleme Göstergesi
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"
doneHata Yönetimi
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
doneKomut Referansı
| Dönüşüm | Komut (Linux/macOS) | Not |
|---|---|---|
| Tüm PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Tüm JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Tüm JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Tümü → WebP kayıpsız | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Yeniden boyutlandır + dönüştür | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
FFmpeg Ne Zaman Doğru Araç Değildir
RAW kamera formatları — sınırlı destek. darktable veya RawTherapee kullanın.
AVIF kodlama — donanım hızlandırması olmadan çok yavaş.
Sadece birkaç dosya mı? FastConvert daha hızlı — kurulum gerektirmez.
Sıkça Sorulan Sorular
Sonuç
FFmpeg toplu görsel dönüştürmesi basit bir kabuk döngüsüne dayanır. Tüm kütüphanenizi işlemeden önce daima küçük bir toplu iş üzerinde test edin.
Komut satırı olmadan görsel dönüştürmek mi? FastConvert — ücretsiz, kayıt gerektirmez.
