У меня есть видео, и я хочу извлечь35-й кадр из этого видео.
Я хочу, чтобы это было изображение в формате png, если это возможно.
Я знаю, что подобных вопросов много, но я не смог найти решения, использующего номер рамы.
решение1
Использоватьselect
фильтр:
ffmpeg -i <input> -vf "select=eq(n\,34)" -vframes 1 out.png
отсчет начинается с 0, поэтому 35-й = n-е значение 34.
решение2
Два быстрых и грязных способа:
ИспользоватьFFmpegисполняемый файл с опцией seek. Сначала вам нужно будет преобразовать во время, например, если мне нужен кадр 150, а мое видео имеет частоту 29,97 FPS, команда будет ffmpeg -ss 00:00:05.01 -i myvideo.avi -frames:v 1 myimage.jpg
. Это может быть немного неточно. Для поиска по точному кадру вам нужно будет использовать библиотеку FFmpeg сС++.
Другой «хакерский» способ — использоватьVLC медиаплеер. Проверьте меню Вид ->Расширенные возможности управления. Поставьте видео на паузу и нажмите кнопку «Покадровое воспроизведение» 34 раза.