MATLAB: VideoReader has no available frames

implayMATLABvideovideoreader

Hi, I'm experiencing an issue with VideoReader in R2018a on Windows 10 where I create a VideoReader object, but then no frames are available to work with i.e. hasFrames(v) = 0. I'm not performing any other operations on the object before trying to use available frames. Trying an implay on the object after reading results in "Invalid Video Data – must be a numeric or logical type data". Using readFrame on the object results is "No more frames available to read from file". The same function on the same video works in Ubuntu 16.04 with the same version of matlab (R2018a). So I'm thinking it might be a windows 10 compatibility thing…
Any help would be greatly appreciated.

Best Answer

I think it is just a codec thing. MATLAB seems to be surprisingly unversatile when it comes to reading different video codecs in Windows. I was using a libx264 here and it was not working. I've switched to MPEG-4 and it is now working.
Video's converted using ffmpeg:
ffmpeg -i <video_in>.avi -c:v mpeg4 -q:v 2 <video_out>.avi
Related Question