Вы можете найти документацию на домашней странице FFmpeg.
Фильтр fps
имеет несколько параметров, один из которых fps
. Итак, чтобы объявить эту опцию, вы должны позвонить:
-vf fps=fps=1/60
↑ ↑ ↑
| | |
| | |__ value
| |______ option
|__________ filter
Вы также можете написать -vf fps="fps=1/60"
, конечно.
Таким образом, когда вы используете 1/60
это означает, что 1/60 кадров в секунду или 1 кадр в 60 секунд. В любом случае разница между этим и -r 1/60
заключается в том, что фильтр применяется перед любой опцией -r
. Обе команды, которые вы дали, должны работать теоретически, однако -r
создает слишком много выходных кадров для меня (но я не первый, кто заметил). Придерживайтесь фильтра fps
.
Обратите внимание, что есть еще один фильтр, называемый framerate
, который похож на fps
, но не тот же. Вместо того чтобы дублировать или отбрасывать кадры для достижения целевой частоты кадров, он будет интерполировать кадры, то есть объединять соседние кадры для создания новых изображений.
Если вы проанализируете команду, вы обнаружите, что image2
- это значение параметра -f
. Это определяет формат вывода. В общем, вы можете использовать его в ffmpeg
следующим образом:
ffmpeg -f input-format -i input-file -f output-format output-file
В вашем примере мы сказали ffmpeg
использовать мультиплексор image2
, который позволяет выводить одиночные файлы изображений из видео, указав шаблон, такой как %02d
для имени вывода.
Параметр -f image2
здесь избыточен, так как мультиплексор должен выбираться автоматически при использовании формата вывода изображения.
В демультиплексоре image2
также есть опция framerate
которая позволяет указать предполагаемую частоту кадров входного файла. Например, если у вас есть слайд-шоу, которое состоит из одного изображения каждую секунду, используйте -framerate 1
в качестве параметра ввода. Смотрите здесь для некоторых примеров.