matlab 读取视频aviread 报错 Unable to locate decompressor to decompress video stream

matlab 2009 中aviread('some.avi') ,提示 Unable to locate decompressor to decompress video stream

网上的解决方案都说是 缺少对应的解码器,用aviinfo 查看该视频所需要的解码器,是xvid,但是下载了对应的,还是有这个问题,后面又下载了DivX plus,完美解码等等,都不行。

这个网址提供了各种编码格式:http://www.free-codecs.com/guides/FourCC.htm

另一种解决方案是用winavi,把视频解码为未压缩的RGB24真彩色。转换完之后就可以,试了可行,但是转换后的视频文件实在太大了。

最后找到的这个方法是用simlink里的模块转换视频:

利用simulink工具把视频导入,再写成multimedia-file,相当于进行了一次转换,去除了编码。
然后再用aviread函数导入转换后的avi文件,即可。
下图是simulink相关帮助页面,请参照其中的步骤进行转换。

 

 

虽然转换后文件也比较大,这个问题暂时解决。

突然明白,最好的方式是装个matlab2012,直接用VideoReader函数,具体用法可见help。因为这类问题根本不重要,不值得花这么多时间,本来用matlab就是为了节省时间的

 

posted @ 2013-03-25 11:10  tofixer  阅读(1324)  评论(0编辑  收藏  举报