Most of the commands mentioned in that link change the playback speed. In order to reduce the number of frames, you do not necessarily need to change playback speed.
The minterpolate filter can reduce the number of frames, but it is a rather lossy process.
You could drop every other frame, but most people notice frame-rates below 24 fps.
Reducing the number of frames will reduce the amount of data. For uncompressed videos, you can expect a linear correlation.
This article includes some examples. Please note the graphs are crap as the x-tics are not evenly distributed.
In most end-user scenarios, compressed videos are used. H264 is a wide-spread compressor. It uses differential aka. predicted frames. Dropping frames will interfere with the optical flow detection, making the video harder to compress (provided you want to maintain the same per-frame quality). For this reason, reducing the frame-rate will yield a less-than-linear reduction of file-size. Related: https://superuser.com/questions/283515/video-encoding-how-much-does-the-video-file-size-increase-with-fps
I just tried it using ffmpeg's decimate filter:
ffmpeg -i raw_footage.ts -an -c:v libx264 -crf 21 30fps.mkv
ffmpeg -i 30fps.mkv -filter:v decimate=cycle=2 -c:v libx264 -crf 21 -t 30 15fps.mkv
File-sizes:
- 30fps.mkv 9,4M
- 15fps.mkv 8,2M
With a reduced frame-rate, the video is awfully jumpy and hard to look at. Totally butchered, in my opinion. Yet the file-size has only been reduced by 12 %. Not a good deal.
For most use-cases, it is way easier to keep the number of frames and reduce the image quality per-frame.
ffmpeg -i original_video.mp4 -c:v libx264 -crf 31 -c:a aac -b:a 64k -movflags +faststart output.mp4
crf
is a quality setting. A higher number means "compress more".
Depending on what you are doing, switching to a higher profile can also help. Reducing the geometric resolution also helps. You may use a better compressor like libx265, if available.