Έχετε 500 στιγμιότυπα οθόνης PNG για μετατροπή σε WebP για τον ιστότοπό σας. Το FFmpeg είναι γνωστό κυρίως ως εργαλείο βίντεο, αλλά χειρίζεται εικόνες εξίσου καλά.
Γιατί FFmpeg για εικόνες;
Το FFmpeg πιθανώς είναι ήδη εγκατεστημένο αν εργάζεστε με βίντεο. Για μορφές RAW (CR2, NEF, ARW), χρησιμοποιήστε darktable ή RawTherapee.
Εγκατάσταση FFmpeg
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpegffmpeg -versionΤο βασικό μοτίβο
Κάθε εντολή μαζικής μετατροπής ακολουθεί την ίδια δομή: βρόχος shell (Linux/macOS) ή βρόχος for (Windows). Πάντα γράφετε σε ξεχωριστό κατάλογο εξόδου.
Μαζική Μετατροπή PNG σε 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 | Ποιότητα | Τυπική χρήση |
|---|---|---|
| 1-2 | Σχεδόν χωρίς απώλεια | Εκτύπωση, αρχειοθέτηση |
| 3-5 | Υψηλή ποιότητα | Φωτογραφία web |
| 6-10 | Μέτρια ποιότητα | Προεπισκοπήσεις |
| 11+ | Χαμηλή ποιότητα | Αποφύγετε |
Μαζική Μετατροπή JPG σε 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"
doneΤο WebP παράγει αρχεία τυπικά 25–35 % μικρότερα από ισοδύναμο JPG. Για φωτογραφίες, 80–85 είναι το βέλτιστο εύρος.
Μετατροπή σε PNG
mkdir -p output
for f in *.jpg *.jpeg; do
[ -f "$f" ] || continue
ffmpeg -i "$f" "output/${f%.*}.png"
doneΜετατροπή Μικτών Μορφών
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Αλλαγή Μεγέθους και Μετατροπή σε Ένα Βήμα
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"
doneΑναδρομική Επεξεργασία Υποκαταλόγων
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"
doneΠαράλληλη Επεξεργασία για Ταχύτητα
mkdir -p output
ls *.png | xargs -P 4 -I {} sh -c 'ffmpeg -i "$1" -q:v 3 "output/${1%.png}.jpg"' _ {}Σε μηχανή 8 πυρήνων με SSD, η παράλληλη επεξεργασία μειώνει τον χρόνο μετατροπής κατά 3–5 φορές.
Ένδειξη Προόδου
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"
doneΔιαχείριση Σφαλμάτων
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
doneΑναφορά Εντολών
| Μετατροπή | Εντολή (Linux/macOS) | Σημείωση |
|---|---|---|
| Όλα PNG → JPG | for f in *.png | do ffmpeg -i "$f" -q:v 3 output/${f%.png}.jpg |
| Όλα JPG → WebP | for f in *.jpg | do ffmpeg -i "$f" -quality 85 output/${f%.jpg}.webp |
| Όλα JPG → PNG | for f in *.jpg | do ffmpeg -i "$f" output/${f%.jpg}.png |
| Όλα → WebP χωρίς απώλεια | for f in *.png | do ffmpeg -i "$f" -lossless 1 output/${f%.png}.webp |
| Αλλαγή μεγέθους + μετατροπή | for f in *.jpg | do ffmpeg -i "$f" -vf scale=1080:-1 -q:v 3 output/${f%.jpg}.jpg |
Πότε το FFmpeg δεν είναι το κατάλληλο εργαλείο
Μορφές RAW κάμερας — περιορισμένη υποστήριξη. Χρησιμοποιήστε darktable ή RawTherapee.
Κωδικοποίηση AVIF — δυνατή αλλά πολύ αργή χωρίς επιτάχυνση υλικού.
Μόνο λίγα αρχεία; FastConvert είναι πιο γρήγορο — χωρίς εγκατάσταση.
Συχνές Ερωτήσεις
Συμπέρασμα
Η μαζική μετατροπή εικόνων με FFmpeg βασίζεται σε έναν απλό βρόχο shell. Πάντα δοκιμάζετε σε μικρή παρτίδα πριν επεξεργαστείτε ολόκληρη τη βιβλιοθήκη σας.
Μετατροπή εικόνων χωρίς γραμμή εντολών; FastConvert — δωρεάν, χωρίς εγγραφή.
