How to speed up or slow down video using FFmpeg.
-filter:v "setpts="
Is the method to achieve this.
The documentation states that for fast motion:
-filter:v setpts=0.5*PTS
Slow motion:
-filter:v setpts=2.0*PTS
In this case it will be 2 times slower and for the speed up it is now 50% faster.
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" faster.mp4
The filter PTS drops frames to achieve speed change and this change only applies to video not the audio.
To change the speed of audio atempo
is the filter to use:
-filter:a "atempo=2.0"
atempo has a limit of 0.5 to 2.0 getting around this is done by:
-filter:a "atempo=2.0,atempo=2.0"