FFmpeg | Ускорить или замедлить аудио/видео

от
FFmpeg    setpts, atempo, speed up, slowmo, slow down, ускорить видео, замедлить видео, timelapse

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


Этим фильтром я и сам часто пользуюсь, когда нужно ускорить видео процесса рисования, стримы или просто какое-то видео, которое затем нужно вставить в видеоредакторе, потому что там обычно ограничения на кратность ускорения.

Для ускорения или замедления видео используется фильтр setpts:
-vf setpts=коэффициент_скорости*PTS
Если коэффициент скорости больше единицы, то видео замедлится, если меньше — ускорится.

Замедлить видео в 5 раз:
  1. ffmpeg -i input.mp4 -an -vf setpts=5*PTS result.mp4
Ускорить видео в 4 раза:
  1. ffmpeg -i input.mp4 -an -vf setpts=0.25*PTS result.mp4

Для ускорения можно использовать такой формат:
-vf setpts=PTS/коэффициент_ускорения
Где коэффициент_ускорения должен быть больше единицы.

Ускорить видео в 4 раза:
  1. ffmpeg -i input.mp4 -an -vf setpts=PTS/4 result.mp4
Ускорить видео в 20 раз:
  1. ffmpeg -i input.mp4 -an -vf setpts=PTS/20 result.mp4


Ускорить/замедлить аудио темпДля изменения темпа используется аудиофильтр atempo:
-af atempo=темп
Темп должен быть в пределах 0.5...100

Ускорить аудио в 5 раз:
  1. ffmpeg -i input.wav -af atempo=5 result.mp3
Замедлить аудио в 2 раза:
  1. ffmpeg -i input.wav -af atempo=0.5 result.mp3
  1. ffmpeg -i input.wav -af atempo=1/2 result.mp3

Для замедления аудио в 4 раза, нужно последовательно применить фильтр два раза:
  1. ffmpeg -i input.wav -af atempo=0.5,atempo=0.5 result.mp3
ℹ️ Для более качественного и удобного изменения скорости аудио, можно воспользоваться утилитой sox:
  1. sox in.mp3 result.mp3 speed 0.25

Ускорить аудио и видео в 2 раза
  1. ffmpeg -i input.mp4 -vf setpts=PTS/2 -af atempo=2 result.mp4
Замедлить аудио и видео в 2 раза
  1. ffmpeg -i input.mp4 -vf setpts=PTS*2 -af atempo=0.5 result.mp4

  • +1
  • views 10181