Speed up and slow down video with FFmpeg

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"