Próbuję uzyskać reprezentatywne klatki wideo, aby usunąć zbędne ramki, które mogą pojawić się w filmie. To jest to, czego używam, aby uzyskać ramki.Zmiana sceny/wykrywanie strzału/wyodrębnianie obrazu za pomocą ffmpeg z wideo
./ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png
Próbowałem również
./ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr thumb%04d.png
Główną kwestią jest to plama. Jeśli po prostu próbuję klatek co 5 sekund, nie widzę żadnego rozmycia, jednak używając powyższych dwóch poleceń uzyskuję dużo rozmycia.
wideo można znaleźć tutaj, http://www.cs.umd.edu/~bharat/video.mp4
W celu próbce filmowi co 10 sekund, używam następujących powodów: Using
./ffmpeg -i video.mp4 -r 1/10 filename%03d.jpg
Output normalnego próbkowania:
Dane wyjściowe za pomocą wybierz:
Jednak normalne próbkowanie może być złe w przypadku niektórych filmów i może tworzyć redundantne ramki. Czy jest jakiś sposób, abym mógł użyć jakiejś opcji w ffmpeg i uzyskać klatki bez tego rozmycia? Jeśli normalne pobieranie próbek może uzyskać dobre ramki, w pobliżu powinny znajdować się ramki bez rozmycia. Spojrzałem na opcje, takie jak scenecut w ffmpeg jednak nie jestem zaznajomiony z wykorzystaniem ich do tej aplikacji.
Ten wynik jest oczekiwany przy regularnym próbkowaniu klatek. Czy koniecznie musi to być 'ffmpeg'? Istnieje wiele swobodnie dostępnych implementacji wykrywania ujęć. – bjou
niekoniecznie, cokolwiek zrobi, po prostu muszę pozbyć się rozmytych ramek – Bharat