Matlab认为它写的AVI是腐败的

时间:2015-04-01 16:19:32

标签: matlab video

我使用matlab与使用mex的科学相机接口,我的matlab程序使用VideoWriter()将文件写入光盘。相机具有RGB功能,如果我这样写文件,视频就可以了。但是,对于当前的应用程序,我需要灰度图像,因此我使用rgb2gray()进行转换。不幸的是,当分析代码再次尝试读取视频文件时,我收到错误:

Error using VideoReader/init (line 450)
Unable to read the file. The file appears to be corrupt.

并试图用VLC读取视频确认它已损坏。我的代码在灰度和彩色版本之间的唯一区别是:

frame = rgb2gray(frame);

我的整个代码部分是:

vid = VideoWriter('testVid.avi');
vid.FrameRate = framerate;
vid.Quality = 100;
open(vid);
for i = 1 : frames;
    %read frame data into variable 'frame'
    frame = rgb2gray(frame);
    writeVideo(vid,frame);
end

我花了很长时间与这个有任何想法的斗争?

1 个答案:

答案 0 :(得分:2)

您需要在写完最后一帧后使用close(vid)关闭视频对象。