Why some of my colored videos load as gray-scale in MATLAB
Show older comments
Hi, I downloaded a bunch of videos from youtube. I then load them to matlab to extract/process 10 randomly selected clips. Most of my videos load perfectly fine, however, a lot of them load as a weird gray-scale version of the video. I load the videos using:
vidObj = VideoReader(filename);
duration = vidObj.Duration ;
clips_indx = duration * rand(10,1);
for i = 1 : 10
vidObj.CurrentTime = clips_indx(i);
im = readFrame(vidObj);
end
This is how the clips look like, tilted and gray!

While the video looks normal like:

I would appreciate any input.
Thanks a lot.
Answers (2)
Walter Roberson
on 16 May 2016
1 vote
1) It is possible for videos to be pseudocolor; in such a case when you retrieve the frame, the map field will be non-empty and the data field will be 2D.
2) With a shear like that, it is plausible that the video is in YCrCb 4:2:2 or 4:2:0 and needs to be converted to RGB.
7 Comments
Mona
on 18 May 2016
Walter Roberson
on 18 May 2016
Please save one of the frames to a .mat file and attach it.
But in the meantime, try configuring http://www.mathworks.com/help/vision/ref/vision.videofilereader-class.html#bse_tfx-3 ImageColorSpace for VideoReader
Walter Roberson
on 20 May 2016
Could you show us the output of aviinfo applied to the file?
Mona
on 21 May 2016
Walter Roberson
on 21 May 2016
I don't know at the moment. Some technical notes on the codecs Youtube uses: http://video.stackexchange.com/questions/5318/how-does-youtube-encode-my-uploads-and-what-codec-should-i-use-to-upload
Mona
on 21 May 2016
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
