Decrease in color quality in playback

Where is the reduction in color quality coming from when my animations are played back from certain sources such as youtube and vlc media player?
I have seen videos on youtube where black is actually black, not dark grey, and the colors look clear and deep. So if its not a problem with youtube’s codec then what am I doing wrong?

The top image is a screen shot from windows media player, which exactly resembles the original frames, and the bottom is from youtube which looks hazy and less saturated. But they are from the same video.
If anyone can provide help or at least an explanation for this It is appreciated. Hopefully this is the right place for this thread.
Frames rendered as targa then encoded as H.264 avi format 1080p

That is the nature of H264. It is a lossy codec. If you can, don’t convert to it. Let youtube or vimeo do the final convert. I have been playing around with rendering to JPEG2000 and then uploading that codec to Vimeo. Vimeo does accept the JPEG2000 codec, but not the Prores codec. File size is much larger, however.

There is a ton of information online about the topic and it has been discussed many many times on this forum alone.

Welcome to the club, you can perceive lossiness of the H264 codec.

dare I add that only very few chosen ones belong to this elite club? :wink:

Yeah, Blender foundation even suggests that you render frames and use something else to create animation stream with.

However have you considered creating a LUT to compensate for the change in gamut. It won’t be the same but could be closer. I guess there are colours that you won’t be able to reproduce but you may get closer by pushing some hues harder with a colour modifier on a strip in the VSE before output.