2013-03-27 342 views
4

我在Matlab中使用视频,并遇到麻烦。matlab - VideoReader框架没有准确解码

我在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(fileName);

有什么想法?

+2

根据'VideoReader'的文档,它使用QuickTime作为Mac上的编解码器。你在Windows上试过这个吗? (它在Windows上使用DirectShow)另外,您可以尝试更新QuickTime以查看是否有帮助。 – wakjah 2013-03-27 15:23:58

回答

3

明白了。

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

这个工具把我的mp4文件,让我Export as QuickTime

果然,Matlab将它加载到mov文件没有问题,并且工件消失了。

干杯。

+0

谢谢,你是一个拯救生命的人! – Sadjad 2014-05-21 05:41:24