Chcę wyodrębnić każdą klatkę pliku wideo i wydrukować obrazy.
Próbowałem użyć poleceń VLC przez terminal, jednak wydaje się, że pomija klatki, mimo że wyłączyłem opcję „pomiń klatki”. Myślę, że mój MacBook Pro i7 jest zbyt wolny. Dziwne wydaje się, że nie mogę odtworzyć pliku wideo bez pomijania klatek. W każdym razie, czy są jakieś alternatywy, które pozwoliłyby mi uzyskać każdą klatkę? Wygląda na to, że VLC próbuje to zrobić w czasie rzeczywistym, co może być problemem, jeśli pracujesz na wolnej maszynie.
Oto polecenie VLC, którego użyłem:
/Applications/VLC.app/Contents/MacOS/VLC /Users/name/Downloads/complete/video.mkv --video-filter=scene --scene-prefix=movie --scene-ratio=1 --scene-path=/folder --start-time=1035 --stop-time=1100 --no-skip-frames
Odpowiedzi:
Zrobiłbym to z FFmpeg, który można uzyskać przez Homebrew , lub alternatywnie ffmpegX .
W pierwszym przypadku zainstaluj Homebrew, a następnie uruchom
brew install ffmpeg
. Będzie to wymagało Xcode i budowania ze źródła, co może być trochę narzutem dla twojego prostego wymagania.W drugim przypadku zainstaluj
.app
i użyjffmpeg
dołączonej do niego wersji - jednak należy pamiętać, że ta wersja pochodzi z 2006 roku, dlatego może nie działać ze wszystkimi plikami wejściowymi.Działa dla mnie klip h.264 / MP4.
Niezależnie od tego, użyj FFmpeg, aby wyprowadzić każdą ramkę osobno:
Możesz także użyć
png
zamiastjpg
bezstratnych wyników i zmienić liczbę,%04d
jeśli potrzebujesz więcej cyfr, gdy plik jest dłuższy.źródło