You will have lost data in re-encoding irrespective of perceptual "quality". That is one of the places that the reduction in size has come from. Minor or imperceptible detail will be lost or approximated using algorithms of the compressor.
The major difference though is going to be in the fact that Adobe and ffmpeg
have different default quality and bandwidth settings. That "VMAF score" looks similar just tells you that a human probably won't see a difference, not how much data has been lost.
ffmpeg
will decode frames and reencode them using whatever its default settings are. Chances are the defaults are aggressive and according to https://trac.ffmpeg.org/wiki/Encode/H.265 it will default to medium
quality profile.
The default is medium. The preset determines compression efficiency and therefore affects encoding speed. Valid presets are ultrafast
, superfast
, veryfast
, faster
, fast
, medium
, slow
, slower
, veryslow
, and placebo
. Use the slowest preset you have patience for. Ignore placebo
as it provides insignificant returns for a significant increase in encoding time.
Slower compression settings will more faithfully preserve the true original quality at the cost of higher file sizes and compression time.
ffmpeg
also defaults to a CRF of 28 which will be quite high relative compression
Choose a CRF. CRF affects the quality. The default is 28, and it should visually correspond to libx264 video at CRF 23
It is even possible that ffmpeg
has some more advanced compression features enabled by default. Adobe may eschew some encoding approximation features in favour of higher bitrates in order to reduce rendering time, or to preserve quality or other features. It is difficult to know without knowing exactly what settings are in use.
If you want to have a fair comparison between Adobe and ffmpeg
outputs then you should render to an uncompressed format, find out exactly what settings Adobe is using and then compress that uncompressed file in both.
Recompressing an already compressed file (decoding and reencoding) will result in generation loss which, while it may not look significant on only one pass, will lose data and quality. After several passes the loss will be significant.