Я хотел бы извлечь изображения из видео Exp01.avi, видео со скоростью 24 кадра в секунду и 25 минут. Я хочу, чтобы изображения извлекались из видео через каждые 1 минуту. Пожалуйста, кто-нибудь, скажите мне, как это сделать.

Я пробовал эти команды, но не помогло:

ffmpeg -i video.avi -r 1  -t 00:01:00 -f image image%02d.png

а также

ffmpeg -i video.avi -r 1/1440 -f image image%02d.png

1 ответ1

2

Я бы использовал фильтр select . Следующее будет делать одно изображение каждые 1440 кадров, то есть каждую 1 минуту со скоростью 24 кадра в секунду - поэтому измените это в зависимости от частоты кадров вашего входного видео:

ffmpeg -i input.file -filter:v 'select=not(mod(n\,1440))' image%02d.png

Чтобы использовать выбор на основе времени (обратите внимание, что это, вероятно, будет включать самый первый кадр):

ffmpeg -i input.file -filter:v 'select=isnan(prev_selected_t)+gte(t-prev_selected_t\,60),setpts=N/(24*TB)' image%02d.png

См. Документацию фильтра select и setpts для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .