Вы можете найти документацию на домашней странице 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 входной формат -i входной файл -f выходной формат выходного файла
В вашем примере, мы сказали , ffmpegчтобы использовать в image2мультиплексор , который позволяет выводить отдельные файлы изображений из видео, указав шаблон как %02dна имя вывода.
Это -f image2лишнее, так как мультиплексор должен выбираться автоматически при использовании формата вывода изображения.
У image2демультиплексора также есть framerateопция, позволяющая указать предполагаемую частоту кадров входного файла. Например, если у вас есть слайд-шоу, которое состоит из одного изображения каждую секунду, используйте -framerate 1в качестве параметра ввода. Смотрите здесь для некоторых примеров.