The video file is a 16 bit AVI file, which is not the most conventional kind of AVI file. Most AVI files are 8 bits per channel or 24 bpp.
Although this file can be read with MMREADER on Windows, AVIREAD and MMREADER fail to read this file on Linux. This is because GStreamer on Linux does not have the appropriate plugin to read this kind of AVI file. This a limitation of the GStreamer plugin.
A workaround is to use MMREADER on Windows to read this file and write it out as an uncompressed AVI file with 8 bits per channel. Then you can read that uncompressed AVI file on your Linux machine.
Here is an example of the conversion code to be run in Windows:
readerobj = mmreader('bit16avi.avi', 'tag', 'myreader1');
vidFrames = read(readerobj);
numFrames = get(readerobj, 'numberOfFrames');
for k = 1 : numFrames
mov(k).cdata = vidFrames(:,:,:,k);
mov(k).colormap = [];
end
movie(mov);
movie2avi(mov,'output.avi','compression','none');
Best Answer