no. it is perfectly fine. you might have to adjust bitrate or quality level.
use a lossless codec and it can be. do you think you used lossless codecs?
apart from compression, there’s the matter of color spaces.
that might be best. use ffmpeg’s libraries directly.
there are ways to disable some of the processing that opencv performs on decoded video frames. I can’t tell if that will satisfy you.
best to write your own.