Какой кадр получает ffmpeg при уменьшении частоты кадров

StackOverflow https://stackoverflow.com/questions/1555771

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть видео, которое я хотел бы преобразовать в изображения кадров каждые 2 секунды.

Например.Если видео длится 7 секунд при частоте 15 кадров в секунду, я хотел бы получить кадры 1, 31, 61, 91.

Команда:

ffmpeg -i foo.mp4 -r 0.5  -f image2 -vcodec mjpeg foo%d.jpg

кажется, делает то, что я хочу, но какой кадр он получает?1, 31, 61, 91 или 30, 60, 90 или 13, 43, 73, 103?

Это было полезно?

Решение

Первое изображение будет с самого первого кадра.

Обратите внимание, что вы вполне можете получить одно или два изображения больше, чем ожидаете.Я считаю, что это связано с округлением и/или тем, что ffmpeg создает окончательные изображения.Например.:Ваше видео действительно длится 7 секунд?Или это 7,63 секунды?

Другие советы

В итоге я сделал следующее, позаимствованное из руководства по ffmpeg:

ffmpeg -v 3 -vsync 0 -sameq -i movie.mpr  -f image2 "images-%03d.jpeg"

Это дает мне каждый кадр фильма в формате JPEG с номером 1 до конца фильма.Затем я отфильтровал эти файлы с помощью языка сценариев, зная, что частота кадров составляет 30 кадров в секунду, чтобы захватить каждый 60-й кадр.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top