FFMPEG — Ускорить видео для замедленной съемки — быстрее / faster faster?

#windows #ffmpeg

#Windows #ffmpeg

Вопрос:

Хорошо, я знаю, что этот вопрос задавался миллион раз. Однако у меня есть одно небольшое дополнение к вопросу, которое я, похоже, не смог найти в своем поиске в Google.

Я, конечно, не профи в FFMPEG…Я использовал стандартный шаблон ускорения / замедления для FFMPEG, тот, который я использую, это:

 ffmpeg -i input.mp4 -filter:v "setpts=PTS/60" -an output.mp4
  

В настоящее время я работаю с часовым видео в формате 4K / 60 кадров в секунду…Я хочу сократить его примерно до 30 секунд или около того, поэтому я использую PTS / 100, и мне не нужен звук … проблема в том, что это занимает ВЕЧНОСТЬ … чего я полностью ожидал.

Но поскольку я сижу здесь и жду его завершения…Я ничего не могу поделать, но wonder…is есть более быстрый / эффективный способ добиться этого? Я знаю, что в FFMPEG есть много странных вещей в отношении порядка команд, которые вы используете для ускорения времени поиска, и настроек и т.д.

Комментарии:

1. С чем вы, наконец, начали работать? Я не могу заставить ответ работать (и у меня нет места, чтобы превратить его в растровые изображения)

Ответ №1:

Вы можете использовать

 ffmpeg -itsscale 0.016667 -i input.mp4 -c copy -an output.mp4
  

где 0.016667 находится 1/60 .

Однако при этом будут сохранены все кадры, и если временная база ввода не имеет достаточного разрешения, у вас будут неправильные временные метки. Вы можете обойти это, сначала создав временный файл.

 ffmpeg -i input.mp4 -c copy -video_track_timescale 90k -an temp.mp4
  

а затем выполнить первую команду для этого временного файла.

Комментарии:

1. Спасибо, я попробую

2. откуда вы взяли временную шкалу в 90 кб?

3. Ни то, ни другое не работает. Они оба выдают выходные данные, которые практически идентичны по размеру исходному файлу и показывают только несколько кадров с большой задержкой между ними, в которых последний кадр остается неизменным на экране.

4. При попытке вывода видео в другом проигрывателе, я думаю, что на самом деле это ничего не делает, кроме изменения некоторых метаданных. Второй проигрыватель утверждает, что воспроизводит точно такое же видео, что и первый, но частота кадров составляет 3600x. Очевидно, что нет возможности использовать достаточную мощность для воспроизведения с такой скоростью, поэтому видеоплеер либо выходит из себя и пропускает кучу кадров, либо воспроизводит его так быстро, как только может, что намного меньше 3600x. В любом случае результат не тот, который ожидался, то есть фактическое удаление >99,9% кадров.

Ответ №2:

Эта последовательность команд может быть полезна для решения этой проблемы:

 ffmpeg -i source.avi -r 0.016667 image/imaged.bmp  

ffmpeg -i image/imaged.bmp -vcodec libx264 -b:v 500k -f avi video.avi
  

Комментарии:

1. Интересно, так вы раскладываете изображения по отдельным файлам, а затем перекомпилируете их в видео?

2. Да, это может работать очень быстро, но для этого требуется немного свободного места на диске