MATLAB:使用vision.VideoFileWriter和vision.VideoFileReader

时间:2016-12-22 00:54:24

标签: matlab video-processing video-conversion

我试图将带有音频的.avi文件转换为.mp4文件。我写了这个剧本' avi2mp4.m'使用Computer Vision System Toolbox v7.2和MATLAB R2016b。

vfr = vision.VideoFileReader('Cris Drift vs Patrick.avi', 'AudioOutputPort',true);
vfw = vision.VideoFileWriter('Cris Drift vs Patrick.mp4', 'FileFormat','MPEG4', 'AudioInputPort',true, ...
                           'FrameRate',vfr.info.VideoFrameRate, 'Quality',90);
while ~isDone(vfr)
    [frame, audio] = vfr();      % [frame, audio] = step(vfr);
    vfw(frame, audio);           % step(vfw, frame, audio);
end
release(vfr);
release(vfw);

但是我收到了这个错误:

  

使用vision.VideoFileWriter / parenReference时出错   输入参数太多;预期1(除了对象句柄),得到2。

     

avi2mp4出错(第16行)   vfw(frame,audio);

我不知道为什么?我必须将音频数据作为参数传递,以便将其与视频数据一起写入。它与MATLAB文档中描述的语法相同

1 个答案:

答案 0 :(得分:0)

使用vision.VideoFileWriter时,只有格式为AVI或WMV时,才能同时编写音频和视频。如果您在设置该属性时收到关于AudioInputPort属性不相关的警告,则表示该配置中不支持音频。