4

Есть ли способ извлечь внутренние кадры и сохранить их как есть из FFMPEG или подобной программы? Я знаю, что вы можете извлечь кадры в последовательность изображений JPEG, используя -f image2 . Но это полные изображения каждого из кадров. Я хотел бы экспортировать только изображение изменения движения, поэтому у меня были бы кадры P и B, показывающие только изменение движения, исключая или маскируя неизмененную область изображений.

Это возможно?

Я использую базовую команду экспорта фрейма. Это дает мне полные кадрированные изображения каждого кадра с указанным FPS.

ffmpeg -i input.mp4 -r 12 -an -b 1024k -y -f image2 frame%4d.jpg

Я надеюсь экспортировать кадры, чтобы у меня была папка с кадрами, где первый кадр был бы полным изображением, а следующий кадр - это только те данные изображения, для которых необходимо перерисовать изображение. Выявление временной избыточности между двумя кадрами (разве это не то, что делают кадры I, P, B?)

2 ответа2

5

Чтобы извлечь кадр типа certin, используйте фильтр выбора:

select=eq(pict_type\,<x>)

где <x> является одним из следующих: pict_type (video only) the type of the filtered frame, can assume one of the following values: I, P, B, S, SI, SP, BI

Так, например:

ffmpeg -i <inputfile> -vf '[in]select=eq(pict_type\,B)[out]' b.frames.mp4

Чтобы понять больше о выводе, добавьте фильтр showinfo :

ffmpeg -i <inputfile> -vf '[in]select=eq(pict_type\,B),showinfo[out]' b.frames.mp4

4

Кадры P и B обычно не содержат новых данных изображения для каждой из областей, которые изменились. Скорее картина разбита на макроблоки разных типов. Некоторые типы макроблоков содержат новые данные изображения, но большинство вычисляют содержимое на основе других опорных изображений и векторов движения.

Не совсем то, что вы просили, но это будет использовать цвет, чтобы показать вам тип каждого макроблока:

ffmpeg -debug vis_mb_type -i input.mp4 output.mp4

или же

ffplay -debug vis_mb_type input.mp4

Это также покажет вам векторы движения:

ffplay -debug vis_mb_type -vismv 7 input.mp4

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