#video #ffmpeg
#Видео #ffmpeg
Вопрос:
У меня есть серия изображений в формате png, которые мне нужно преобразовать в видео, воспроизводимое со скоростью 60 кадров в секунду.
ffmpeg -y -i frames/M.png -vcodec libx264 -r 60 video.avi
Приведенный выше код приводит к тому, что видео имеет 60 кадров в секунду, но он использует один и тот же кадр два или три раза, что фактически приводит к получению вдвое большего видео с частотой 25 кадров в секунду. Что я делаю не так?
Ответ №1:
Некоторые параметры ffmpeg зависят от положения. ffmpeg дает вам подсказку через свою справку:
# ffmpeg -h
...
Global options (affect whole program instead of just one file:
-loglevel loglevel set logging level
...
Per-file main options:
-f fmt force format
...
#
-r
включен один из этих параметров, которые указаны для каждого файла.
Чтобы адаптировать параметр к входному файлу, вы должны записать -r
аргумент перед соответствующим -i
аргументом.
Итак, следующее должно сработать для вас (работало для меня с кодировщиком mpeg4):
ffmpeg -y -r 60 -i frames/M.png -vcodec libx264 video.avi
Вы также можете попробовать, поскольку кодировщик libx264 может не адаптировать частоту кадров:
ffmpeg -y -r 60 -i frames/M.png -vcodec libx264 -r 60 video.avi
Комментарии:
1. Спасибо. Я читал, что
-r
это зависит от положения, но никогда не пробовал использовать его дважды… Теперь я получаю странный результат с 162 кадрами, удаленными с момента переключения входных файлов сrgba
наrgba64be
, но кадры после отброшенных остаются по-прежнемуrgba64be
, и они в полном порядке…