Я хотел бы извлечь кадры в fps=25, и кадры повторно масштабируются к 320x240.
Что я попробовал:
ffmpeg -i video.avi -vf scale="320x240" fps=25 frames/c01_%04d.jpeg
Это возвращается fps=25: Invalid argument
но когда я выполняю его или с кадр/с или масштабируюсь, это работает.
ffmpeg -i video.avi -vf scale="320x240" frames/c01_%04d.jpeg
или
ffmpeg -i video.avi -vf fps=25 frames/c01_%04d.jpeg
Работает. Как я могу выполнить ffmpeg с фильтрами кадр/с и масштабом?
Объедините простые фильтры с запятой:
ffmpeg -i video.avi -vf "scale=320:240,fps=25" frames/c01_%04d.jpeg
При использовании фильтра fps для извлечения кадров следует учитывать, что при входной частоте кадров:
совпадает со значением fps, тогда фильтр ничего не делает, и вы можете удалить его.
выше значения fps, тогда некоторые кадры будут пропущены, чтобы соответствовать значению fps. Если это так, используйте fps перед масштабированием, и процесс будет быстрее.
ниже значения fps, тогда некоторые кадры будут дублироваться для соответствия значению fps.
Если вы хотите просто извлечь все кадры , то удалите фильтр fps.
Рассмотрите возможность объявления только ширины или высоты и использования -1
в качестве значения для другого, такого как 320:-1
или -1:240
. Это позволит фильтру автоматически выбрать правильное значение при сохранении соотношения сторон. Это предотвратит растяжение выходного изображения.