Есть ли способ извлечь внутренние кадры и сохранить их как есть из 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?)
[in]
И[out]
не требуется в первом примере.select
иshowinfo
.Кадры P и B обычно не содержат новые данные изображения для каждой из областей, которые изменились. Скорее картина разбита на макроблоки разных типов. Некоторые типы макроблоков содержат новые данные изображения, но большинство вычисляют содержимое на основе других опорных изображений и векторов движения.
Не совсем то, что вы просили, но это будет использовать цвет, чтобы показать вам тип каждого макроблока:
или же
Это также покажет вам векторы движения:
Обратитесь к ссылке для получения дополнительной информации о цветах каждого МБ:
Документация по отладке макроблоков и векторов движения FFMpeg
источник