Я ищу параметр командной строки.
Например, если у меня есть видео sample-video.mp4
, и я хочу сгенерировать файл изображения sample-image.jpg
из видео в момент времени 00:00:26, какую команду мне следует дать?
Также было бы очень полезно, если бы вы могли подробно объяснить, какова функция каждого аргумента команды.
Вы можете использовать mplayer
(из пакета mplayer
, по умолчанию не установлен):
mplayer -vo jpeg -ss 00:00:26 -frames 1 sample-video.mp4
Это создаст файл 00000001.jpg
, поэтому вам придется его переименовать. Насколько я знаю, нет способа указать имя файла.
-vo jpeg
означает, что вы хотите вывод JPEG, -ss 00:00:26
ищет заданную позицию, -frames 1
означает обработку одного кадра и затем выход.
Вы можете использовать ffmpeg
ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4 -t 1 -f image2 anyfilename.jpeg
Вы также можете поиграть с опциями, например, контроль качества вывода jpeg -q:v <linear integer 1-10>
или разрешения -s 480x300
.
Еще несколько идей здесь
Метод 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 - потому что это командная строка, и мы не хотим, чтобы какие-либо окна открывались. кроме того, это означает, что мы можем запустить его без X11.
- время начала = 26 - точное положение снимка в секундах
sample-image.png
, на ваши текущий скриншот Если вы пропустите это, VLC начнет нумерацию снимков экрана Полная документация здесь