Cum să extragi un cadru fix dintr-un video cu FFmpeg
In this tutorial, you'll learn about Cum să extragi un cadru fix dintr. We cover key concepts, practical examples, and best practices.
Problema
Vrei să extragi un cadru fix (frame) dintr-un video ca imagine — pentru thumbnail, previzualizare sau analiză. Comanda ta fie extrage un cadru necorespunzător, fie produce o imagine de calitate slabă.
Soluția rapidă
Fix 1: Extragere Cadru la Timp Exact
GRESIT — extragere la keyframe (inexact):
ffmpeg -i input.mp4 -ss 10 -vframes 1 output.jpg
# (extrage cel mai apropiat keyframe, nu exact la secunda 10)
CORECT — folosește filtrul fps pentru precizie:
ffmpeg -i input.mp4 -vf "select=gte(t\,10)" -vframes 1 output.jpg
# selectează cadrul unde t (timpul) >= 10 secunde
# gte = greater than or equal
Fix 2: Extragere cu -ss Înainte de Input (Rapid)
ffmpeg -ss 10 -i input.mp4 -vframes 1 -q:v 2 output.jpg
# -ss înainte de -i = căutare rapidă (la keyframe)
# -q:v 2 = calitate imagine (1-31, 1=cea mai bună)
Fix 3: Extragere cu Timp și Rezoluție
ffmpeg -ss 00:01:30 -i input.mp4 -vf "scale=1280:720" -vframes 1 output.jpg
# Extrage la 1 minut 30 secunde, scalează la 720p
Fix 4: Extragere Multiple Cadre (Thumbnail Strip)
# Un cadru la fiecare 10 secunde:
ffmpeg -i input.mp4 -vf "fps=1/10,scale=320:180" -q:v 2 thumb_%03d.jpg
# fps=1/10 = un cadru la 10 secunde
# thumb_001.jpg, thumb_002.jpg, ...
Fix 5: Extragere Cadru cu Dimensiuni Originale
ffmpeg -ss 5 -i input.mp4 -vframes 1 -c:v png output.png
# PNG = fără pierderi, calitate maximă
# -c:v png păstrează dimensiunile originale
Fix 6: Extragere Cadru la Timp Exact cu Precizie Maximă
ffmpeg -i input.mp4 -vf "select='eq(t,10)*eq(n,300)'" -vframes 1 output.jpg
# selecționează cadrul la t=10 secunde SAU frame-ul #300
# folosește * pentru AND logic
Folosește DodaTech's Frame Extractor pentru a extrage cadre cu interfață timeline.
Prevenție
- Folosește
-ssînainte de-ipentru căutare rapidă. - Pentru precizie absolută, folosește filtrul select.
- Folosește
-q:v 2pentru JPEG de calitate, PNG pentru fără pierderi. - Testează pe un fișier scurt înainte de procesarea completă.
- Verifică timestamp-ul cu ffprobe înainte de extragere.
Greșeli comune
- -ss după -i — căutare lentă, decodează de la început.
- ** -vframes lipsă** — extrage toate cadrele (mii de fișiere!).
- Calitate JPEG implicită — fără
-q:v, calitatea poate fi slabă. - Timestamp inexistent — ceri un cadru după durata video-ului.
- Extragere la keyframe pentru cadre exacte — filtrul select oferă precizie.
Aceste greșeli apar frecvent în codul FFmpeg real. Contribuitorii DodaTech au identificat aceste modele prin analiza proiectelor open-source și a sistemelor de producție.
Exercițiu practic
Extrage 5 cadre dintr-un video la intervale de 15 secunde, fiecare scalat la 640x360, în format JPEG cu calitate maximă.
Acest exercițiu întărește conceptele prezentate în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro