Відповіді:
Ви можете використовувати 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означає обробити один кадр і потім вийти.
-vo png:z=9з налаштуванням -z, що визначає рівень стиснення. Для JPEG можна також додати в настройках якості: -vo jpeg:quality=100. Але ваша відповідь чудова, як уже :)
Можна використовувати ffmpeg
ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4 -t 1 -f image2 anyfilename.jpeg
Ви також можете пограти з такими параметрами, як контроль якості виводу -q:v <linear integer 1-10>або роздільної здатності jpeg -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 почне нумерацію скріншотівПовна документація тут
ffmpegсхоже, підтримуються імена файлів для виходу.