To answer the why QP is not recommended, here is some text from a person who seems to know whats going on:
Constant QP (CQP)
The Quantization Parameter controls the amount of compression for every Macroblock in a frame. Large values mean that there will be higher quantization, more compression, and lower quality. Lower values mean the opposite. QP ranges from 0 to 51 in H.264, and you can easily set a fixed QP for your entire encoding process with x264 and x265. Note: libvpx does not have a fixed QP mode.
ffmpeg -i <input> -c:v libx264 -qp 23 <output>
ffmpeg -i <input> -c:v libx265 -x265-params qp=23 <output>
To know more about the idea behind QP, you can read [this tutorial](LINK REMOVED DUE TO FORUM RESTRICTION) (if you’re not afraid of some maths).
Unless you know what you’re doing and you explicitly want this, do not use this mode! Setting a fixed QP means that the resulting bitrate will be varying strongly depending on each scene’s complexity, and it will result in rather inefficient encodes for your input video. You may waste space and you have no control of the actual bitrate.
Good for: Video encoding research
Bad for: Almost anything else
Note that [Netflix proposes using fixed-QP encoding](LINK REMOVED DUE TO FORUM RESTRICTION) for its per-shot encoding optimization to achieve optimal encodes for each scene. This however requires a lot of processing and careful assembly of the individual encoded shots, so it’s not a “one size fits all” method you should use unless you have the whole framework implemented.
Source: ( https://slhck.info/video/2017/03/01/rate-control.html )