4

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

有什么想法吗?

4

1 回答 1

3

知道了。

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

这个工具拿走了我的 mp4 文件,让我Export as QuickTime.

果然,Matlab 把它加载到mov文件上没问题,工件也不见了。

干杯。

于 2013-03-27T16:38:53.787 回答