конвертировать высокоскоростное видео в обычное с помощью субдискретизации кадров

4563
Carl Witthoft

Я обнаружил любое количество коммерческих приложений, которые могут конвертировать, например, медленное видео со скоростью 120 кадров в секунду в 30 кадров в секунду, записывая каждый n-й кадр в новый видеофайл. Я надеялся, что обычные бесплатные инструменты, такие как VLC, handbrake или ffmpeg, могут сделать это для меня, но я признаю, что не смог отследить команды для этого. Я нашел множество способов экспортировать каждый n-й кадр в коллекцию файлов изображений, но я бы предпочел не делать этого, а затем объединить сотни или тысячи jpgs в новый видеофайл.

Я нашел этот замедленный ответ, который использует setpts, так что если это все, что мне нужно сделать, пожалуйста, скажите мне (с или без "you dope" часть :-)).

5

1 ответ на вопрос

7
Gyan

If you want to keep real-time i.e. 1 second of live action is played out in 1 second of video then

ffmpeg -i input.mp4 -r 30 output.mp4 

This will drop 3 out of every 4 frames.

If you want to preserve all frames but cycle through them slowly then

ffmpeg -i input.mp4 -vf setpts=4*PTS -r 30 output.mp4 
Благодарю. Является ли это предпочтительным для длинного выражения в http://superuser.com/questions/573747/drop-every-even-or-odd-frames-using-ffmpeg?rq=1, в котором используется фильтр с `select =" mod ( n-1 \, 2) Carl Witthoft 8 лет назад 0
Если исходное видео не имеет переменной частоты кадров, я бы предпочел свои команды. Gyan 8 лет назад 0
К сожалению, первая командная строка не сработала - выходной файл все еще находился в замедленном режиме - как вы и предупреждали, кажется, что входные данные считались переменной частотой кадров, поэтому ответ во второй строке, но с использованием `setpts = PTS / 4` преобразовал мой входной сигнал в 120 к / с в 30 к / с в реальном времени. Carl Witthoft 8 лет назад 1
Для меня вторая команда не сохраняет фреймы. Я пытаюсь замедлить видео со скоростью 960 к / с путем кодирования со скоростью 60 к / с, но получаю медленное резкое видео, которое четко указывает на то, что кадры пропадают. haridsv 7 лет назад 0
Попробуйте `ffmpeg -r 60 -i input.mp4 output.mp4` Gyan 7 лет назад 0

Похожие вопросы