Skip to content

Cum să detectezi schimbări de scenă cu FFmpeg

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să detectezi schimbări de scenă cu FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

Ai nevoie să identifici automat schimbările de scenă dintr-un videoclip pentru editare, generare de thumbnail-uri sau analiză de conținut. Fără un filtru automat, acest proces e manual și consumă mult timp.

Soluția

Fix 1: Detectare scenă cu select

ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)',showinfo" -f null - 2>&1 | grep "pts_time"

Valorile scene apropiate de 0 detectează schimbări minore, valori apropiate de 1 detectează doar schimbări majore.

Fix 2: Extrage cadrele la schimbare de scenă

ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)'" -vsync vfr frame_%04d.png

Fix 3: Detectare cu metadate în fișier

ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',metadata=print" -f null - 2>&1 | grep "pts_time"

Fix 4: Exportă timestamp-urile scenei

ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)',showinfo" -f null - 2>&1 | grep "pts_time" | cut -d: -f2 > scene_timestamps.txt

Fix 5: Thumbnail-uri la fiecare schimbare

ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)',scale=320:-2" -vsync vfr thumb_%03d.jpg

Prevenție

  • Ajustează pragul scenei (0.3-0.5) în funcție de tipul conținutului.
  • Pentru fade-uri lente, folosește un prag mai mic (0.2-0.3).
  • Testează pe un fragment reprezentativ pentru a găsi pragul optim.

Întrebări frecvente

### Cum funcționează detectarea scenei?

Filtrul select='gt(scene,0.4)' compară fiecare cadru cu precedentul. Dacă diferența depășește pragul (0.4 = 40%), cadrul e reținut ca început de scenă nouă.

Ce prag ar trebui să folosesc?

0.3-0.4 pentru conținut general, 0.2 pentru fade-uri și tranziții lente, 0.5+ pentru conținut cu mișcare rapidă (pentru a evita fals pozitive).

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro