matlab - VideoReader帧未被准确解码

时间:2013-03-27 15:18:13

标签: image matlab video image-processing computer-vision

我在Matlab中处理视频,但遇到了麻烦。

我在Mac OS X 10.8.2(Mountain Lion)上使用Matlab R2012a。

我可以使用VideoReader加载视频,然后像这样抓取一个帧:

vid = VideoReader('movie.mp4');
pic = read(vid, 20);
imshow(pic);

然而,我在Matlab中看到的是......

enter image description here

而不是这个(在VLC中)..

enter image description here

运动不仅是乱码(绿松石卡车),而且背景中的绿色卡车实际上已经消失了。我猜测编解码器正在以一种Matlab无法补偿的方式压缩电影。但是,我找不到Matlab会接受的任何其他视频格式。

显示的视频是mpeg4,yuv420p。我看到Matlab提到了很多关于支持mpeg2和AVI的偏好。我已使用ffmpeg将视频转换为各种格式,但Matlab为每种其他文件格式都给出了以下错误:

  
    

使用VideoReader / init时出错(第447行)
    无法初始化内部资源。

         

VideoReader出错(第132行)
                obj.init(文件名);

  

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

知道了。

感谢@wakjah关于QuickTime的提示。视频编辑朋友建议MPEG StreamClip转换为QuickTime格式。

此工具使用了我的mp4文件并让我Export as QuickTime

果然,Matlab将mov文件加载起来没问题,文件也没了。

干杯。