I decided to do some testing with FFmpeg in seeing the time, filesize and bitrate differences when choosing different presets and crf plus some upscaling.
Test computer: Ryzen 7 1700 8 cores 16 threads @ 3.7 GHz. 16GB DDR4 @ 2600 MHz. Samsung 860 EVO 500GB SSD.
Source file: 00:03:00 of 1280 x 720 25fps sports footage. 111 MB file size at a bitrate of 5,002 kbps.
Encoding tests
The aim was to test out which of the encoding presets and crf factor gave the smaller file to time ratio. In general a slower encode means smaller file size and quicker means little compress. Each case can have its use scenarios. Read about FFmpeg presets and crf here.
The ultrafast preset seemed to play up for me, not sure if it was the small input file being the culprit. But the finding for ultrafast seem defunct. The faster presets also seemed to add size onto the input file aswell as more bitrate. Odd.
If you want to reduce the file size but keep good quality and not have it take forever: Slow 22.
If you have time up your sleeve and want a good solid compress: Veryslow 21.
If you want a quick encode just to knock some size out of the file: Fast 23.
Upscaling
5,000 kbps will be okay at 1080p not so much 1440p but i still ran the FFmpeg upscale on the 720p source file:
To the human eye this didn’t really make a difference between having the 720p source in full-screen or the 1080p fullscreen.
Screenshots
Using FFmpeg’s screenshot ability these are the images from the upscaling and encoding outputs: