Frame given to OnFrameCaptured_RenderingThread is different from the one seen on screen (luminance or light differences)

I created a custom MediaCapture and MediaOutput to capture each frame. I wrote some test code to see whether it works or not and indeed it works but there is a catch. The image seen on screen is not the same as saved by my code. The format is BGRA8 for both the capture, the output, and the viewport.

The actual screenshot taken in the editor, which is what I can actually see while in game:

And there is the “screenshot” taken from my code inside the OnFrameCaptured_RenderingThread:

Don’t mind the little square at the top, it is only for sync purpose.

Any idea on the origin of that behavior?