@kookie yeah uh... your video encoder settings are suspect. check your video encoder settings in OBS settings > output > recording section
with simple output mode, there's "recording quality". avoid "same as stream" and start with "high quality".
"lossless quality" has major quirks (including the codec used, plus colors being fucked up) and i don't recommend due to extreme size, and the quirks making it not work in video tools.
with advanced output mode, assuming your "video encoder" is "x264" (if it's not then everything is probably different and doesn't map at all!), for "rate control" use CRF. start CRF with 23, decrease number to increase quality/size, increase number to decrease quality/size. every 6 is roughly half/double file size, 17 is "visually lossless" (but not true lossless), and more tuning info can be found on https://trac.ffmpeg.org/wiki/Encode/H.264#crf
(in both cases, you will run a second encoder if you're streaming at the same time. you can probably offload streaming to GPU, and you can technically do it for your recordings too but tbh i personally don't feel like there's enough understandable knobs for GPU encoders)