我试图将带有音频的.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文档中描述的语法相同
答案 0 :(得分:0)
使用vision.VideoFileWriter
时,只有格式为AVI或WMV时,才能同时编写音频和视频。如果您在设置该属性时收到关于AudioInputPort
属性不相关的警告,则表示该配置中不支持音频。