我正在使用Matlab处理视频,但遇到了麻烦。
我正在Mac OS X 10.8.2 (Mountain Lion)上使用Matlab R2012a。
我可以使用VideoReader
载入视频并获取帧,如下所示:
vid = VideoReader('movie.mp4');
pic = read(vid, 20);
imshow(pic);
然而,在Matlab中我看到的是...(图片)。
与此相比,在VLC中是这样的...(图片)。
不仅运动被搞乱了(青绿色卡车),而且背景中的绿色卡车在那一帧中实际上已经消失了。我猜测编解码器以某种方式压缩了电影,而Matlab没有对此进行补偿。然而,我找不到其他任何Matlab可以接受的视频格式。
显示的视频是mpeg4,yuv420p。我看到Matlab提到了很多关于支持mpeg2和AVI是首选的内容。我使用ffmpeg将视频转换为各种格式,但是Matlab对每种其他文件格式都给出了以下错误:
VideoReader / init(第447行)出错 无法初始化内部资源。
VideoReader(第132行)中的错误 obj.init(fileName);
有什么想法吗?
VideoReader
的文档,它在Mac上使用QuickTime进行编解码。你在Windows上尝试过吗?(在Windows上它使用DirectShow)另外,你可以尝试更新QuickTime看看是否有帮助。 - wakjah