Какой кадр получает ffmpeg при уменьшении частоты кадров - PullRequest
3 голосов
/ 12 октября 2009

У меня есть видео, которое я хотел бы преобразовывать в изображения кадров каждые 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?

Ответы [ 2 ]

1 голос
/ 12 ноября 2009

Я закончил тем, что сделал в значительной степени заимствованное из учебника ffmpeg:

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

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

1 голос
/ 11 ноября 2009

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

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

...