Skip to content

Cum să extragi un cadru fix dintr-un video cu FFmpeg

DodaTech Updated 2025-01-15 2 min read

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 -i pentru căutare rapidă.
  • Pentru precizie absolută, folosește filtrul select.
  • Folosește -q:v 2 pentru 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

  1. -ss după -i — căutare lentă, decodează de la început.
  2. ** -vframes lipsă** — extrage toate cadrele (mii de fișiere!).
  3. Calitate JPEG implicită — fără -q:v, calitatea poate fi slabă.
  4. Timestamp inexistent — ceri un cadru după durata video-ului.
  5. 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

### Care este diferența dintre -ss înainte și după -i?

-ss înainte de -i: caută la keyframe (rapid, mai puțin precis). -ss după -i: decodează de la început (lent, precis la cadru). Combină: -ss înainte + filtrul select pentru precizie.

Ce format de imagine recomandați pentru thumbnails?

JPEG cu -q:v 2 pentru calitate bună și dimensiune mică. PNG pentru arhivare fără pierderi. WebP pentru web (calitate bună, dimensiune foarte mică).

Cum extrag cadrul din mijlocul video-ului?

Calculează timestamp-ul: durata_totala / 2. Folosește ffprobe pentru durată: ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro