Anda memiliki 500 screenshot PNG yang perlu dikonversi ke WebP untuk website Anda. FFmpeg paling dikenal sebagai alat video, namun menangani gambar sama baiknya.
Mengapa FFmpeg untuk gambar?
FFmpeg kemungkinan sudah terpasang jika Anda mengerjakan video. Untuk format RAW (CR2, NEF, ARW), gunakan darktable atau RawTherapee.
Instalasi FFmpeg
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionPola dasar
Setiap perintah konversi massal mengikuti struktur yang sama: loop shell (Linux/macOS) atau loop for (Windows). Selalu tulis ke direktori output terpisah.
Konversi Massal PNG ke 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 | Kualitas | Penggunaan tipikal |
|---|---|---|
| 1-2 | Hampir lossless | Cetak, arsip |
| 3-5 | Kualitas tinggi | Fotografi web |
| 6-10 | Kualitas sedang | Pratinjau |
| 11+ | Kualitas rendah | Hindari |
Konversi Massal JPG ke 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 menghasilkan file yang biasanya 25–35 % lebih kecil dari JPG setara. Untuk foto, 80–85 adalah rentang optimal.
Konversi ke PNG
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneKonversi Format Campuran
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"
doneUbah Ukuran dan Konversi Sekaligus
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"
donePemrosesan Rekursif Subdirektori
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"
donePemrosesan Paralel untuk Kecepatan
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}Pada mesin 8-core dengan penyimpanan SSD, pemrosesan paralel biasanya mengurangi waktu konversi 3–5 kali lipat.
Indikator Kemajuan
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"
donePenanganan Kesalahan
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
doneReferensi Perintah
| Konversi | Perintah (Linux/macOS) | Catatan |
|---|---|---|
| Semua PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Semua JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Semua JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Semua → WebP lossless | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Ubah ukuran + konversi | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
Kapan FFmpeg Bukan Alat yang Tepat
Format RAW kamera — dukungan terbatas. Gunakan darktable atau RawTherapee.
Encoding AVIF — mungkin tapi sangat lambat tanpa akselerasi hardware.
Hanya beberapa file? FastConvert lebih cepat — tanpa instalasi.
Pertanyaan yang Sering Ditanyakan
Kesimpulan
Konversi gambar massal dengan FFmpeg adalah tentang loop shell sederhana. Selalu uji pada batch kecil sebelum memproses seluruh perpustakaan.
Konversi gambar tanpa baris perintah? FastConvert — gratis, tanpa daftar.
