У меня есть видеокадры в формате PNG со скоростью 1 FPS, и я пытаюсь преобразовать их в видео с помощью ffmpeg.
Если я сделаю что-то вроде этого:
ffmpeg -i data/input-%4d.png data/output.mp4
Я получаю видео со скоростью 25 кадров в секунду, что в основном является очень быстрой пересылкой ввода (которое записывается со скоростью 1 кадр в секунду).
Если я попробую:
ffmpeg -i data/input-%4d.png -r 1 data/output.mp4
Я получаю то, что VLC не хочет играть :)
Теперь, если я беру первое видео (FF) и применяю фильтр, чтобы замедлить его (например -filter:v 'setpts=24.0*PTS'
), я могу заставить его воспроизводиться как видео с 1 FPS, но, конечно, цена равна размеру файла. Я думаю, он генерирует кучу повторяющихся кадров.
Итак, вопрос в том, как создать видео, которое имеет ровно 1 кадр / с и воспроизводит его с такой скоростью? Формат вывода, кстати, не так важен для меня.
-r 1
.
ffmpeg
достаточно умен, чтобы определить видеокодек только из расширения файла формата контейнера.mp4
. Попробуйте добавить-vcodec libx264 -vpre hq
в командную строку, чтобы сообщить ей кодек и параметры кодирования.