Відповіді:
Ви можете використовувати 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
схоже, підтримуються імена файлів для виходу.