VLC interpreting the metadata tags in video file differently. Different players do all kinds of funky things so their output isn't a good reference for correctness.
Long story short, video file contains both the data ("what is") and metadata (description of "what is"). Lets say data values in video file are encoded with colorspace X. Metadata tells that it is encoded as "something X-ish". Now, VLC reads the file and "thinks", allright, it is X-ish, so I'll apply an additional transform Y to it "for reasons". This makes the player show data to you differently than some other player that has its own reasoning over the metadata tags. Root cause of problem is both ambiguity in metadata tag meaning and different interpretations of this ambiguity in different softwares.