FFMPEG - Ускорение видео для промежутка времени - быстрее / быстрее? - PullRequest
0 голосов
/ 19 марта 2019

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

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

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

В настоящее время я работаю с часовым видео 4K / 60FPS ... Я хочу уменьшить его до 30 секунд или около того, поэтому я использую PTS / 100, и мне не нужно аудио ... . проблема в том, что это НАВСЕГДА ... что я полностью ожидал.

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

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

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

ffmpeg -i source.avi -r 0.016667 image/image%05d.bmp  

ffmpeg -i image/image%05d.bmp -vcodec libx264 -b:v 500k -f avi video.avi
0 голосов
/ 19 марта 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...