Próbuję wyodrębnić „dokładnie 1 klatkę na każde 10” klatek filmu (tzn. Wyodrębnić 1, pozostaw 9, a następnie powtórz) do celów naukowych. Film ma 105 klatek, 3,5 sekundy, 29,97 kl./s (h.264,. Mov, wyprodukowany przez Nikona D3100).
Mam wysłał go tutaj .
VLC
Poniższe polecenie powinno wygenerować 10 klatek, ale daje tylko 6 obrazów. Próbowałem różnych proporcji scen i żadna z nich nie generowała poprawnej liczby klatek (nawet nie blisko korekty).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
Czy ktoś mógłby mi powiedzieć, na czym polega problem?
FFmpeg
FFmpeg nie wydaje się mieć komendy dokładnie dla mojego celu. Poniższe polecenie wyodrębnia 3 klatki z każdej sekundy, ale ponieważ liczba klatek na sekundę nie wynosi dokładnie 30 (raczej 2,97), nie będzie to dla mnie poprawnych wyników.
Ponadto nawet FFmpeg nie podaje prawidłowej liczby ramek nawet za pomocą tego polecenia. Na 3,5 sekundy filmu oczekuję maksymalnie 10 klatek, ale dostaję 12 klatek!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
Jak mogę osiągnąć to, czego chcę?
-sameq
nie robi tego, co prawdopodobnie myślisz, i zostało usunięte z bieżącej wersji (to znaczy prawdziwego ffmpeg, nie jestem pewien, czy jest w fałszywym ffmpeg Ubuntu). Zamiast tego użyj qscale.