FFMPEG | How to encode a video to make it faster
Good day people,
I was wondering how to encode a video from a speed of 1 x to a one of 5 x, using ffmpeg.
Thanks in advance for any suggestion.
Speeding up/slowing down video
You can change the speed of your video using the setpts
video filter. The "old way" of creating timelapse or still frame was to first split up a video into individual frames, (for instance, as jpg's) then delete some and recombine the frames. Using the setpts
filter is the new way and is faster and possibly less lossy.
To speed up your video from 1x to 5x, you can type:
ffmpeg -i input.mkv -vf "setpts=0.2*PTS" -an output.mkv
Source: FFmpeg - how to speed up / slow down a video
Change Video Speed
Speed Up(5x)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.2*PTS[v];[0:a]atempo=5.0[a]" -map "[v]" -map "[a]" output.mp4
- Here, setpts=0.2, atempo=5.0
Slow down(5x)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=5.0*PTS[v];[0:a]atempo=0.2[a]" -map "[v]" -map "[a]" output.mp4
- Here, setpts=5.0, atempo=0.2
setpts:
-
If you want to speed up the video 2x, setpts will be
0.5
(1/2). On the other hand, if you want to slow down the video 2x (0.5 of the normal speed), setpts will be2.0
(1/0.5) -
If you want to speed up the video 5x, setpts will be
0.2
(1/5). On the other hand, if you want to slow down the video 5x (0.2 of the normal speed), setpts will be5.0
(1/0.2)
atempo:
-
If you want to speed up the video 2x, atempo will be
2.0
(1x2.0). On the other hand, if you want to slow down the video 2x (0.5 of the normal speed), atempo will be0.5
(1x0.5) -
If you want to speed up the video 5x, atempo will be
5.0
(1x5). On the other hand, if you want to slow down the video 5x (0.2 of the normal speed), atempo will be0.2
(1x0.2)