Odpowiedzi:
Możesz użyć mplayer
(z pakietu mplayer
, domyślnie nie instalowany):
mplayer -vo jpeg -ss 00:00:26 -frames 1 sample-video.mp4
Spowoduje to utworzenie pliku, 00000001.jpg
więc musisz zmienić jego nazwę. O ile wiem, nie ma sposobu na określenie nazwy pliku.
-vo jpeg
oznacza, że chcesz wyjściowy plik JPEG, -ss 00:00:26
szuka określonej pozycji, -frames 1
oznacza przetworzenie jednej klatki, a następnie wyjście.
-vo png:z=9
z ustawieniem -z określającym poziom kompresji. Dla plików JPEG można również dodać w ustawieniach jakości: -vo jpeg:quality=100
. Ale twoja odpowiedź jest świetna, bo już jest :)
Możesz użyć ffmpeg
ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4 -t 1 -f image2 anyfilename.jpeg
Możesz także bawić się z opcjami, takimi jak kontrola jakości wyjścia JPEG -q:v <linear integer 1-10>
lub rozdzielczość -s 480x300
.
Więcej pomysłów tutaj
Metoda VLC
cvlc sample-video.mp4 --start-time=26 --run-time=1 --rate=1 --video-filter=scene --vout=dummy --aout=dummy --scene-ratio=24 --scene-prefix=sample-image --scene-replace vlc://quit
cvlc - ponieważ jego linia poleceń i nie chcemy otwierać żadnych okien. oznacza to również, że możemy go uruchomić bez X11.
--start-time = 26 - jest dokładną pozycją migawki w sekundach
sample-image.png
bieżącym zrzutem ekranu. Jeśli pominiesz to, VLC rozpocznie numerowanie zrzutów ekranuPełna dokumentacja tutaj
ffmpeg
wydaje się, że obsługuje nazwy plików wyjściowych.